{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#数据集路径\n",
    "data_file='all_comments.csv'\n",
    "data_df=pd.read_csv(data_file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>city</th>\n",
       "      <th>rating</th>\n",
       "      <th>date</th>\n",
       "      <th>comment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>天是红河岸</td>\n",
       "      <td>上海</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>回南雀</td>\n",
       "      <td>湖北武汉</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>西年</td>\n",
       "      <td>河北邯郸</td>\n",
       "      <td>推荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>宇宙飛行士.</td>\n",
       "      <td>北京</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>吹哥</td>\n",
       "      <td>湖北仙桃</td>\n",
       "      <td>推荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  user_id  city rating        date  \\\n",
       "0   天是红河岸    上海     力荐  2019-06-27   \n",
       "1     回南雀  湖北武汉     力荐  2019-06-27   \n",
       "2      西年  河北邯郸     推荐  2019-06-27   \n",
       "3  宇宙飛行士.    北京     力荐  2019-06-27   \n",
       "4      吹哥  湖北仙桃     推荐  2019-06-27   \n",
       "\n",
       "                                             comment  \n",
       "0          打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。  \n",
       "1  电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...  \n",
       "2  唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...  \n",
       "3  服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...  \n",
       "4  期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data_df=pd.read_csv(data_file,usecols=['city','rating','date','comment'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>city</th>\n",
       "      <th>rating</th>\n",
       "      <th>date</th>\n",
       "      <th>comment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>上海</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>湖北武汉</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>河北邯郸</td>\n",
       "      <td>推荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>北京</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>湖北仙桃</td>\n",
       "      <td>推荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   city rating        date                                            comment\n",
       "0    上海     力荐  2019-06-27          打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。\n",
       "1  湖北武汉     力荐  2019-06-27  电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...\n",
       "2  河北邯郸     推荐  2019-06-27  唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...\n",
       "3    北京     力荐  2019-06-27  服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...\n",
       "4  湖北仙桃     推荐  2019-06-27  期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂..."
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#数据预览\n",
    "data_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(500, 4)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看数据的行数和列数\n",
    "data_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 500 entries, 0 to 499\n",
      "Data columns (total 4 columns):\n",
      " #   Column   Non-Null Count  Dtype \n",
      "---  ------   --------------  ----- \n",
      " 0   city     327 non-null    object\n",
      " 1   rating   500 non-null    object\n",
      " 2   date     500 non-null    object\n",
      " 3   comment  500 non-null    object\n",
      "dtypes: object(4)\n",
      "memory usage: 15.8+ KB\n"
     ]
    }
   ],
   "source": [
    "#查看数据集的基本信息\n",
    "data_df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#数据初步处理\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#日期数据类型处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0      2019-06-27\n",
       "1      2019-06-27\n",
       "2      2019-06-27\n",
       "3      2019-06-27\n",
       "4      2019-06-27\n",
       "          ...    \n",
       "495    2019-07-19\n",
       "496    2019-07-23\n",
       "497    2019-06-29\n",
       "498    2019-07-19\n",
       "499    2019-07-20\n",
       "Name: date, Length: 500, dtype: object"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_df['date']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data_df['date']=pd.to_datetime(data_df['date'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 500 entries, 0 to 499\n",
      "Data columns (total 4 columns):\n",
      " #   Column   Non-Null Count  Dtype         \n",
      "---  ------   --------------  -----         \n",
      " 0   city     327 non-null    object        \n",
      " 1   rating   500 non-null    object        \n",
      " 2   date     500 non-null    datetime64[ns]\n",
      " 3   comment  500 non-null    object        \n",
      "dtypes: datetime64[ns](1), object(3)\n",
      "memory usage: 15.8+ KB\n"
     ]
    }
   ],
   "source": [
    "data_df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "评论的开始日期 2019-06-27 00:00:00\n"
     ]
    }
   ],
   "source": [
    "print(\"评论的开始日期\",data_df['date'].min())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "评论的结束日期 2019-09-15 00:00:00\n"
     ]
    }
   ],
   "source": [
    "print(\"评论的结束日期\",data_df['date'].max())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#评分处理\n",
    "rating_dict={\n",
    "    '很差':1,\n",
    "    '较差':2,\n",
    "    '还行':3,\n",
    "    '推荐':4,\n",
    "    '力荐':5\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data_df['score']=data_df['rating'].map(rating_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>city</th>\n",
       "      <th>rating</th>\n",
       "      <th>date</th>\n",
       "      <th>comment</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>上海</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>湖北武汉</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>河北邯郸</td>\n",
       "      <td>推荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>北京</td>\n",
       "      <td>力荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>湖北仙桃</td>\n",
       "      <td>推荐</td>\n",
       "      <td>2019-06-27</td>\n",
       "      <td>期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   city rating       date                                            comment  \\\n",
       "0    上海     力荐 2019-06-27          打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。   \n",
       "1  湖北武汉     力荐 2019-06-27  电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...   \n",
       "2  河北邯郸     推荐 2019-06-27  唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...   \n",
       "3    北京     力荐 2019-06-27  服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...   \n",
       "4  湖北仙桃     推荐 2019-06-27  期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...   \n",
       "\n",
       "   score  \n",
       "0      5  \n",
       "1      5  \n",
       "2      4  \n",
       "3      5  \n",
       "4      4  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#数据分析\n",
    "#整体平价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "rating\n",
       "力荐    238\n",
       "很差    143\n",
       "推荐     51\n",
       "较差     60\n",
       "还行      8\n",
       "dtype: int64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#统计各项平分的个数\n",
    "rating_results=data_df.groupby('rating').size()\n",
    "rating_results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#在爬取的500条评论中，大多数给了5分的好评，然后是1分的差评，两级分化比较严重"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:211: RuntimeWarning: Glyph 21147 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:211: RuntimeWarning: Glyph 33616 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:211: RuntimeWarning: Glyph 25512 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:211: RuntimeWarning: Glyph 24456 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:211: RuntimeWarning: Glyph 24046 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:211: RuntimeWarning: Glyph 36739 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:211: RuntimeWarning: Glyph 36824 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:211: RuntimeWarning: Glyph 34892 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:180: RuntimeWarning: Glyph 21147 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:180: RuntimeWarning: Glyph 33616 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:180: RuntimeWarning: Glyph 25512 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:180: RuntimeWarning: Glyph 24456 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:180: RuntimeWarning: Glyph 24046 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:180: RuntimeWarning: Glyph 36739 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:180: RuntimeWarning: Glyph 36824 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "D:\\Anaconda\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:180: RuntimeWarning: Glyph 34892 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAAGDCAYAAACFuAwbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAXRUlEQVR4nO3dfbRldX3f8c9X8LGiQmYgPOkYpTZQ\njdaRGjUV61pVkyiaRgutiqlK0uVDbEgr2iwlycLYGGutSrLwCVCRoKmKKTFY4kPERzBUeYiVKsgE\nAgOoIDEo47d/nD3xON7Bi8y5v3vnvl5r3XXP2Xufc7/n7lmz3mvvfc6t7g4AAOPcafQAAADrnSAD\nABhMkAEADCbIAAAGE2QAAIMJMgCAwQQZwCpVVS+vqreMngNYPEEG3C5V9Ziq+mRVfbOqbqiq86rq\nEaPn2pmaeXFVXVRVN1fVlqp6T1U9ePRsP0p3v6q7nzd6DmDx9hw9ALB2VNW9kvxpkv+Q5Mwkd0ny\nc0lu2cU/Z4/u3raLnu71SX4hyfOTnJdkjyRPm5Z9cRf9jF2uqvbs7ltHzwGsDEfIgNvjHydJd7+7\nu7d197e7+5zu/sL2Darq+VV1aVXdVFWXVNU/m5b/dFV9tKq+UVUXV9VT5h5zSlX9YVWdXVU3J3lc\nVd21qv6gqr5WVddU1R9V1d2n7TdU1Z9Oz3VDVf1lVf3Q/2dVdUiSFyQ5urv/ortv6e6/6+53dfer\np23uXVWnVdXWqrqiqn5r+3NV1XOmI4Cvm37WV6rqUdPyK6vq2qo6ZofX8UdV9eHp9X+squ43t/71\n0+NurKoLqurn5tadUFXvrap3VtWNSZ4zLXvntP5u07rrp1k+V1X7TesOqKqzpt/FZVX1/B2e98zp\nNd40/e4337F/BsCuJsiA2+P/JtlWVadW1ZOqau/5lVX19CQnJHl2knsleUqS66vqzkk+mOScJPsm\neVGSd1XVg+Ye/m+TnJhkrySfSPJfMwvAhyZ5YJIDk7xi2va4JFuSbEyyX5KXJ1nq78A9PsmW7v7s\nbbymNyS5d5KfSvLYafZfmVv/z5N8IclPJDk9yRlJHjHN9Mwkb6yqe85t/++S/G6SDUkuTPKuuXWf\nm17PPtNzvaeq7ja3/sgk701ynx0elyTHTHMePM3ya0m+Pa17d2a/jwOS/HKSV1XV4+ce+5Rp7vsk\nOSvJG2/j9wEMIMiAZevuG5M8JrP4eXOSrdORmf2mTZ6X5Pe7+3M9c1l3X5HkkUnumeTV3f2d7v6L\nzE59Hj339B/o7vO6+3uZnQJ9fpL/2N03dPdNSV6V5Khp2+8m2T/J/br7u939l730H+b9iSRX7+z1\nVNUeSf5Nkpd1903dfXmS1yZ51txmX+3ut0+nUP84syD6nelo2zlJvpNZnG33v7r74919S5L/kuRn\nq+rg6ff3zu6+vrtv7e7XJrlrkvko/VR3v7+7v9fd384P+u70eh44HZ28oLtvnJ77MUle2t1/390X\nJnnLDq/hE9199vQa3pHkZ3b2OwHGEGTA7dLdl3b3c7r7oCT/NLOjMv99Wn1wkv+3xMMOSHLlFFvb\nXZHZUa/trpy7vTHJPZJcMJ2e+0aSD03Lk+Q1SS5Lcs50GvH4nYx7fWbhtjMbMrsO7orbmOuaudvf\nTpLu3nHZ/BGyf3gd3f2tJDdk9vpTVcdNp3O/Ob2me08z/NBjl/COJH+e5Iyquqqqfn868nhAku3R\nurPX8Ldzt/8uyd2qyjXEsIoIMuDH1t1/neSUzMIsmQXFA5bY9KokB+9wndd9k/zN/NPN3b4us9A5\nrLvvM33du7vvOf3cm7r7uO7+qSRPTvIbO5yi2+7cJAfdxjVT12V25Ol+c8t2nOv2Onj7jelU5j5J\nrpquF3tpkmck2bu775Pkm0lq7rFLHeWbrZgdCfzt7j40yaOS/GJmp1evSrJPVe21C18DsMIEGbBs\nVfVPpqM8B033D87stOOnp03ekuQ3q+rhNfPA6aL2zyS5Ocl/rqo7V9URmYXUGUv9nOlI2puTvK6q\n9p1+1oFV9YTp9i9Oz11Jbkyybfra8Xm+nOSkJO+uqiOq6i7TxfFHVdXx0ym8M5OcWFV7TbP+RpJ3\n3oFf08/X7KNB7pLZtWSf6e4rM7s27tYkW5PsWVWvyOw6u2WpqsdV1YOn06w3ZhaS26bn/mSS35te\n20OSPDc/fA0asIoJMuD2uCmzi9w/U7N3Q346yUWZXWSf7n5PZhfmnz5t+/4k+3T3dzK7sPxJmR2V\nOinJs6cjbDvz0sxOS356etfh/873r7c6ZLr/rSSfSnJSd390J8/z4swuYn9Tkm9kdkr1aZm9ySCZ\nvcHg5iRfyezNBKcneduyfhtLOz3JKzM7VfnwzC7yT2anG/8sszdGXJHk73Pbpyh39JOZXfB/Y5JL\n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\nVtVF/QAA69Fqu4YMAGDdEWQAAIMJMgCAwVbdRf3rVVWdkOSRSW6dFu2Z5NNLLevuE1Z6PnbOvlvb\n7L+1y75b2+y/HyTIVpejuvsbSVJV90nykp0sY/Wx79Y2+2/tsu/WNvtv4pQlAMBgggwAYDBBBgAw\nmCADABhMkAEADCbIAAAG87EXq8e1SU6rqu9N9++U5EM7WcbqYt+tbfbf2mXfrW323xx/XBwAYDCn\nLAEABhNkAACDCTJg3auql1TVPebunz39yRaAFeEaMmBdqKrK7P+87y2x7vIkm7v7uhUfDCCOkAG7\nsaraVFWXVtVJST6f5K1VdX5VXVxVvz1t8+IkByT5SFV9ZFp2eVVtmHv8m6fHnFNVd5+2eURVfaGq\nPlVVr6mqi0a9TmDtE2TA7u5BSU7r7oclOa67Nyd5SJLHVtVDuvt/JLkqyeO6+3FLPP6QJG/q7sOS\nfCPJv56Wvz3Jr3X3zybZtvBXAezWBBmwu7uiuz893X5GVX0+yV8lOSzJoct4/Fe7+8Lp9gVJNk3X\nl+3V3Z+clp++SycG1h0fDAvs7m5Okqq6f5LfTPKI7v56VZ2S5G7LePwtc7e3Jbl7ktrVQwLrmyNk\nwHpxr8zi7JtVtV+SJ82tuynJXst9ou7+epKbquqR06KjdtmUwLrkCBmwLnT3/6mqv0pycZKvJDlv\nbvXJSf6sqq7eyXVkS3lukjdX1c1JPprkm7tyXmB98bEXAD+Gqrpnd39run18kv27+9cHjwWsUY6Q\nAfx4fqGqXpbZ/6NXJHnO2HGAtcwRMgCAwVzUDwAwmCADABhMkAEADCbIAAAGE2QAAIMJMgCAwf4/\nyXOSywdU3foAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化各项评分的个数\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "plt.figure(figsize=(10,6))\n",
    "sns.countplot(x='rating',data=data_df)\n",
    "plt.title('Scores Comparison')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#使用pyecharts\n",
    "#柱状图\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"3a0cb38164964979a04032c66db74a22\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_3a0cb38164964979a04032c66db74a22 = echarts.init(\n",
       "                    document.getElementById('3a0cb38164964979a04032c66db74a22'), 'white', {renderer: 'canvas'});\n",
       "                var option_3a0cb38164964979a04032c66db74a22 = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u603b\\u4f53\\u8bc4\\u4ef7\",\n",
       "            \"data\": [\n",
       "                238,\n",
       "                143,\n",
       "                51,\n",
       "                60,\n",
       "                8\n",
       "            ],\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u603b\\u4f53\\u8bc4\\u4ef7\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"\\u603b\\u4f53\\u8bc4\\u4ef7\": true\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            },\n",
       "            \"data\": [\n",
       "                \"\\u529b\\u8350\",\n",
       "                \"\\u5f88\\u5dee\",\n",
       "                \"\\u63a8\\u8350\",\n",
       "                \"\\u8f83\\u5dee\",\n",
       "                \"\\u8fd8\\u884c\"\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_3a0cb38164964979a04032c66db74a22.setOption(option_3a0cb38164964979a04032c66db74a22);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x203bd2501d0>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts.charts import Bar\n",
    "\n",
    "bar=Bar()\n",
    "bar.add_xaxis(rating_results.index.to_list())\n",
    "bar.add_yaxis('总体评价',rating_results.to_list())\n",
    "bar.render_notebook()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"f8755671cd0e4c31bb743e08db792851\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_f8755671cd0e4c31bb743e08db792851 = echarts.init(\n",
       "                    document.getElementById('f8755671cd0e4c31bb743e08db792851'), 'white', {renderer: 'canvas'});\n",
       "                var option_f8755671cd0e4c31bb743e08db792851 = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"pie\",\n",
       "            \"name\": \"\\u603b\\u4f53\\u8bc4\\u4ef7\",\n",
       "            \"clockwise\": true,\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"\\u529b\\u8350\",\n",
       "                    \"value\": 238\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f88\\u5dee\",\n",
       "                    \"value\": 143\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u63a8\\u8350\",\n",
       "                    \"value\": 51\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8f83\\u5dee\",\n",
       "                    \"value\": 60\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8fd8\\u884c\",\n",
       "                    \"value\": 8\n",
       "                }\n",
       "            ],\n",
       "            \"radius\": [\n",
       "                \"0%\",\n",
       "                \"75%\"\n",
       "            ],\n",
       "            \"center\": [\n",
       "                \"50%\",\n",
       "                \"50%\"\n",
       "            ],\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u529b\\u8350\",\n",
       "                \"\\u5f88\\u5dee\",\n",
       "                \"\\u63a8\\u8350\",\n",
       "                \"\\u8f83\\u5dee\",\n",
       "                \"\\u8fd8\\u884c\"\n",
       "            ],\n",
       "            \"selected\": {}\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    }\n",
       "};\n",
       "                chart_f8755671cd0e4c31bb743e08db792851.setOption(option_f8755671cd0e4c31bb743e08db792851);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x203bd250748>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#饼状图\n",
    "from pyecharts.charts import Pie\n",
    "\n",
    "data_pair=list(zip(rating_results.index.to_list(),rating_results.tolist()))\n",
    "\n",
    "pie=Pie()\n",
    "pie.add('总体评价',data_pair)\n",
    "pie.render_notebook()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>city</th>\n",
       "      <th>rating</th>\n",
       "      <th>comment</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>上海</td>\n",
       "      <td>力荐</td>\n",
       "      <td>打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>湖北武汉</td>\n",
       "      <td>力荐</td>\n",
       "      <td>电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>河北邯郸</td>\n",
       "      <td>推荐</td>\n",
       "      <td>唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>北京</td>\n",
       "      <td>力荐</td>\n",
       "      <td>服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>湖北仙桃</td>\n",
       "      <td>推荐</td>\n",
       "      <td>期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            city rating                                            comment  \\\n",
       "date                                                                         \n",
       "2019-06-27    上海     力荐          打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。   \n",
       "2019-06-27  湖北武汉     力荐  电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...   \n",
       "2019-06-27  河北邯郸     推荐  唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...   \n",
       "2019-06-27    北京     力荐  服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...   \n",
       "2019-06-27  湖北仙桃     推荐  期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...   \n",
       "\n",
       "            score  \n",
       "date               \n",
       "2019-06-27      5  \n",
       "2019-06-27      5  \n",
       "2019-06-27      4  \n",
       "2019-06-27      5  \n",
       "2019-06-27      4  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#分析不同月份的评价趋势\n",
    "#将日期设置为索引\n",
    "\n",
    "data_df.set_index('date',inplace=True)\n",
    "data_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>score</th>\n",
       "      <th>comment</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-06-30</th>\n",
       "      <td>3.395018</td>\n",
       "      <td>281</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-07-31</th>\n",
       "      <td>3.111702</td>\n",
       "      <td>188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-08-31</th>\n",
       "      <td>1.750000</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-09-30</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               score  comment\n",
       "date                         \n",
       "2019-06-30  3.395018      281\n",
       "2019-07-31  3.111702      188\n",
       "2019-08-31  1.750000        4\n",
       "2019-09-30  5.000000       27"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#使用resmaple进行统计\n",
    "score_trend=data_df.resample('M').agg({'score':'mean','comment':'count'})\n",
    "score_trend"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"7d546324b985401a83ffd6f2841336b5\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_7d546324b985401a83ffd6f2841336b5 = echarts.init(\n",
       "                    document.getElementById('7d546324b985401a83ffd6f2841336b5'), 'white', {renderer: 'canvas'});\n",
       "                var option_7d546324b985401a83ffd6f2841336b5 = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"line\",\n",
       "            \"name\": \"\\u8bc4\\u5206\",\n",
       "            \"connectNulls\": false,\n",
       "            \"symbolSize\": 4,\n",
       "            \"showSymbol\": true,\n",
       "            \"smooth\": false,\n",
       "            \"step\": false,\n",
       "            \"data\": [\n",
       "                [\n",
       "                    \"2019-06-30T00:00:00\",\n",
       "                    3.395017793594306\n",
       "                ],\n",
       "                [\n",
       "                    \"2019-07-31T00:00:00\",\n",
       "                    3.1117021276595747\n",
       "                ],\n",
       "                [\n",
       "                    \"2019-08-31T00:00:00\",\n",
       "                    1.75\n",
       "                ],\n",
       "                [\n",
       "                    \"2019-09-30T00:00:00\",\n",
       "                    5.0\n",
       "                ]\n",
       "            ],\n",
       "            \"hoverAnimation\": true,\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"lineStyle\": {\n",
       "                \"width\": 1,\n",
       "                \"opacity\": 1,\n",
       "                \"curveness\": 0,\n",
       "                \"type\": \"solid\"\n",
       "            },\n",
       "            \"areaStyle\": {\n",
       "                \"opacity\": 0\n",
       "            },\n",
       "            \"zlevel\": 0,\n",
       "            \"z\": 0\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u8bc4\\u5206\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"\\u8bc4\\u5206\": true\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            },\n",
       "            \"data\": [\n",
       "                \"2019-06-30T00:00:00\",\n",
       "                \"2019-07-31T00:00:00\",\n",
       "                \"2019-08-31T00:00:00\",\n",
       "                \"2019-09-30T00:00:00\"\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_7d546324b985401a83ffd6f2841336b5.setOption(option_7d546324b985401a83ffd6f2841336b5);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x203bd2f2cc0>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts.charts import Line\n",
    "line=Line()\n",
    "line.add_xaxis(score_trend.index.to_list())\n",
    "line.add_yaxis(\"评分\",score_trend['score'].to_list())\n",
    "line.render_notebook()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#情感分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#使用snowNLP进行情感分析\n",
    "from snownlp import SnowNLP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7853504415636449\n",
      "0.13082804652201174\n",
      "0.15877229730613918\n"
     ]
    }
   ],
   "source": [
    "#情感分析例子\n",
    "text=SnowNLP('这个产品很好用，这个产品是垃圾，这个也太难看了。')\n",
    "sent=text.sentences\n",
    "for sen in sent:\n",
    "    s=SnowNLP(sen)\n",
    "    print(s.sentiments)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#越接近0表示负面情绪\n",
    "#越接近1表示正面情绪"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.358316928463932"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#获取文本的情感打分\n",
    "np.mean([SnowNLP(sen).sentiments for sen in sent])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_sentiment_score(comment):\n",
    "    \n",
    "    \"\"\"\n",
    "    获取评论的情感分数\n",
    "    \"\"\"\n",
    "    #分句\n",
    "    sents=SnowNLP(comment).sentences\n",
    "    sentiment_score=np.mean([SnowNLP(sent).sentiments for sent in sents])\n",
    "    return sentiment_score\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#对每条评论进行情感分析\n",
    "data_df['sentiment_score']=data_df['comment'].map(get_sentiment_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>city</th>\n",
       "      <th>rating</th>\n",
       "      <th>comment</th>\n",
       "      <th>score</th>\n",
       "      <th>sentiment_score</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>上海</td>\n",
       "      <td>力荐</td>\n",
       "      <td>打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。</td>\n",
       "      <td>5</td>\n",
       "      <td>0.879484</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>湖北武汉</td>\n",
       "      <td>力荐</td>\n",
       "      <td>电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...</td>\n",
       "      <td>5</td>\n",
       "      <td>0.743536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>河北邯郸</td>\n",
       "      <td>推荐</td>\n",
       "      <td>唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...</td>\n",
       "      <td>4</td>\n",
       "      <td>0.643607</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>北京</td>\n",
       "      <td>力荐</td>\n",
       "      <td>服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...</td>\n",
       "      <td>5</td>\n",
       "      <td>0.754841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>湖北仙桃</td>\n",
       "      <td>推荐</td>\n",
       "      <td>期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...</td>\n",
       "      <td>4</td>\n",
       "      <td>0.760200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            city rating                                            comment  \\\n",
       "date                                                                         \n",
       "2019-06-27    上海     力荐          打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。   \n",
       "2019-06-27  湖北武汉     力荐  电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...   \n",
       "2019-06-27  河北邯郸     推荐  唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...   \n",
       "2019-06-27    北京     力荐  服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...   \n",
       "2019-06-27  湖北仙桃     推荐  期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...   \n",
       "\n",
       "            score  sentiment_score  \n",
       "date                                \n",
       "2019-06-27      5         0.879484  \n",
       "2019-06-27      5         0.743536  \n",
       "2019-06-27      4         0.643607  \n",
       "2019-06-27      5         0.754841  \n",
       "2019-06-27      4         0.760200  "
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看结果\n",
    "data_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#查看情感分数的分布情况\n",
    "# plt.figure(figsize=(10,6))\n",
    "# sns.distplot(data_df['sentiment_score'],kde=False)\n",
    "# plt.title('Sentiment Score Distributtion')\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#评论数地区分布\n",
    "import cpca"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Loading model from cache C:\\Users\\李强\\AppData\\Local\\Temp\\jieba.cache\n",
      "Loading model cost 1.169 seconds.\n",
      "Prefix dict has been built succesfully.\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>省</th>\n",
       "      <th>市</th>\n",
       "      <th>区</th>\n",
       "      <th>地址</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>吉林省</td>\n",
       "      <td>长春市</td>\n",
       "      <td>榆树市</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>北京市</td>\n",
       "      <td>北京市</td>\n",
       "      <td>朝阳区</td>\n",
       "      <td>中关村</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     省    市    区   地址\n",
       "0  吉林省  长春市  榆树市     \n",
       "1  北京市  北京市  朝阳区  中关村"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#例子\n",
    "cpca.transform(['吉林省榆树市','朝阳区中关村'])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'北京'"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#获取城市\n",
    "cpca.transform(['朝阳区中关村']).loc[0,'市'][:-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_valid_city(city_str):\n",
    "    try:\n",
    "        return cpca.transform([city_str]).loc[0,'市'][:-1]\n",
    "    except:\n",
    "        pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "上海\n"
     ]
    }
   ],
   "source": [
    "print(get_valid_city(\"上海\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'武汉'"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cpca.transform([\"湖北武汉\"]).loc[0,'市'][:-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n",
      "WARNING:root: 无法映射, 建议添加进umap中\n"
     ]
    }
   ],
   "source": [
    "data_df['valid_city']=data_df['city'].map(get_valid_city)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>city</th>\n",
       "      <th>rating</th>\n",
       "      <th>comment</th>\n",
       "      <th>score</th>\n",
       "      <th>sentiment_score</th>\n",
       "      <th>valid_city</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>上海</td>\n",
       "      <td>力荐</td>\n",
       "      <td>打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。</td>\n",
       "      <td>5</td>\n",
       "      <td>0.879484</td>\n",
       "      <td>上海</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>湖北武汉</td>\n",
       "      <td>力荐</td>\n",
       "      <td>电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...</td>\n",
       "      <td>5</td>\n",
       "      <td>0.743536</td>\n",
       "      <td>武汉</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>河北邯郸</td>\n",
       "      <td>推荐</td>\n",
       "      <td>唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...</td>\n",
       "      <td>4</td>\n",
       "      <td>0.643607</td>\n",
       "      <td>邯郸</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>北京</td>\n",
       "      <td>力荐</td>\n",
       "      <td>服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...</td>\n",
       "      <td>5</td>\n",
       "      <td>0.754841</td>\n",
       "      <td>北京</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-06-27</th>\n",
       "      <td>湖北仙桃</td>\n",
       "      <td>推荐</td>\n",
       "      <td>期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...</td>\n",
       "      <td>4</td>\n",
       "      <td>0.760200</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            city rating                                            comment  \\\n",
       "date                                                                         \n",
       "2019-06-27    上海     力荐          打光摄影服化道都用心，曹盾的画面一如既往靠谱，质感太棒了！应该是本年度最佳古装了。   \n",
       "2019-06-27  湖北武汉     力荐  电影质感，镜头转换非常流畅。服化道非常精致。全员原音，感觉很棒！雷佳音扮演的死囚张小敬很不羁...   \n",
       "2019-06-27  河北邯郸     推荐  唐朝只有道士的簪子是竖着插，很少有剧组会注意到这点，所以这部剧的道具是真的用心，下了功夫研究...   \n",
       "2019-06-27    北京     力荐  服化道、配乐、摄影、打光、整片电影质感都绝了，开头的一镜到底真是盛世长安啊！剧组在细节上的处...   \n",
       "2019-06-27  湖北仙桃     推荐  期待这部剧很久了，感觉唐朝的还原度非常高，装饰的道具都很真实。剧中人物的服装非常精致，就是漂...   \n",
       "\n",
       "            score  sentiment_score valid_city  \n",
       "date                                           \n",
       "2019-06-27      5         0.879484         上海  \n",
       "2019-06-27      5         0.743536         武汉  \n",
       "2019-06-27      4         0.643607         邯郸  \n",
       "2019-06-27      5         0.754841         北京  \n",
       "2019-06-27      4         0.760200             "
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看结果\n",
    "data_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#获取每个城市的评论统计信息\n",
    "comment_city_results=data_df.groupby('valid_city').agg({\n",
    "    'score':'mean','comment':'count'\n",
    "})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>score</th>\n",
       "      <th>comment</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>valid_city</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <td>3.294118</td>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>上海</th>\n",
       "      <td>3.216216</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>乌海</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>九江</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>北京</th>\n",
       "      <td>3.323944</td>\n",
       "      <td>71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>南京</th>\n",
       "      <td>3.428571</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>南充</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>南昌</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>南通</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>合肥</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               score  comment\n",
       "valid_city                   \n",
       "            3.294118       51\n",
       "上海          3.216216       37\n",
       "乌海          1.000000        1\n",
       "九江          5.000000        1\n",
       "北京          3.323944       71\n",
       "南京          3.428571        7\n",
       "南充          5.000000        1\n",
       "南昌          3.000000        2\n",
       "南通          1.000000        1\n",
       "合肥          1.000000        1"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "comment_city_results.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['阿城', '阿克苏', '阿勒泰', '阿图什', '安达', '安国', '安康', '安陆', '安庆', '安丘', '安顺', '安阳', '鞍山', '巴中', '霸州', '白城', '白山', '白银', '百色', '蚌埠', '包头', '宝鸡', '保定', '保山', '北海', '北流', '北票', '本溪', '毕节', '滨州', '亳州', '博乐', '沧州', '昌吉', '昌邑', '常德', '常熟', '常州', '巢湖', '朝阳', '潮阳', '潮州', '郴州', '成都', '承德', '澄海', '赤峰', '赤水', '崇州', '滁州', '楚雄', '慈溪', '从化', '达川', '大安', '大理', '大连', '大庆', '大石桥', '大同', '大冶', '丹东', '丹江口', '丹阳', '儋州', '当阳', '德惠', '德令哈', '德兴', '德阳', '德州', '登封', '邓州', '定州', '东川', '东港', '东莞', '东胜', '东台', '东阳', '东营', '都江堰', '都匀', '敦化', '敦煌', '峨眉山', '额尔古纳', '鄂尔多斯', '鄂州', '恩平', '恩施', '二连浩特', '番禺', '防城港', '肥城', '丰城', '丰南', '丰镇', '凤城', '奉化', '佛山', '涪陵', '福安', '福清', '福州', '抚顺', '阜康', '阜新', '阜阳', '富锦', '富阳', '盖州', '赣州', '高安', '高碑店', '高密', '高明', '高平', '高要', '高邮', '高州', '格尔木', '个旧', '根河', '公主岭', '巩义', '古交', '广汉', '广水', '广元', '广州', '贵池', '贵港', '贵阳', '桂林', '桂平', '哈尔滨', '哈密', '海城', '海口', '海拉尔', '海林', '海伦', '海门', '海宁', '邯郸', '韩城', '汉中', '杭州', '蒿城', '合川', '合肥', '合山', '和龙', '和田', '河池', '河间', '河津', '河源', '菏泽', '鹤壁', '鹤岗', '鹤山', '黑河', '衡水', '衡阳', '洪湖', '洪江', '侯马', '呼和浩特', '湖州', '葫芦岛', '花都', '华阴', '华蓥', '化州', '桦甸', '怀化', '淮安', '淮北', '淮南', '淮阴', '黄骅', '黄山', '黄石', '黄州', '珲春', '辉县', '惠阳', '惠州', '霍林郭勒', '霍州', '鸡西', '吉安', '吉首', '即墨', '集安', '集宁', '济南', '济宁', '济源', '冀州', '佳木斯', '嘉兴', '嘉峪关', '简阳', '建德', '建瓯', '建阳', '江都', '江津', '江门', '江山', '江阴', '江油', '姜堰', '胶南', '胶州', '焦作', '蛟河', '揭阳', '介休', '界首', '金昌', '金华', '金坛', '津市', '锦州', '晋城', '晋江', '晋州', '荆门', '荆沙', '荆州', '井冈山', '景德镇', '景洪', '靖江', '九江', '九台', '酒泉', '句容', '喀什', '开封', '开平', '开原', '开远', '凯里', '克拉玛依', '库尔勒', '奎屯', '昆明', '昆山', '廓坊', '拉萨', '莱芜', '莱西', '莱阳', '莱州', '兰溪', '兰州', '阆中', '廊坊', '老河口', '乐昌', '乐陵', '乐平', '乐清', '乐山', '雷州', '耒阳', '冷水江', '冷水滩', '醴陵', '丽水', '利川', '溧阳', '连云港', '连州', '涟源', '廉江', '辽阳', '辽源', '聊城', '林州', '临安', '临川', '临汾', '临海', '临河', '临江', '临清', '临夏', '临湘', '临沂', '赁祥', '灵宝', '凌海', '凌源', '浏阳', '柳州', '六安', '六盘水', '龙海', '龙井', '龙口', '龙泉', '龙岩', '娄底', '泸州', '鹿泉', '潞城', '罗定', '洛阳', '漯河', '麻城', '马鞍山', '满洲里', '茂名', '梅河口', '梅州', '汨罗', '密山', '绵阳', '明光', '牡丹江', '南安', '南昌', '南充', '南川', '南宫', '南海', '南京', '南宁', '南平', '南通', '南阳', '讷河', '内江', '宁安', '宁波', '宁德', '攀枝花', '盘锦', '彭州', '蓬莱', '邳州', '平顶山', '平度', '平湖', '平凉', '萍乡', '泊头', '莆田', '濮阳', '浦圻', '普兰店', '普宁', '七台河', '齐齐哈尔', '启乐', '潜江', '钦州', '秦皇岛', '沁阳', '青岛', '青铜峡', '青州', '清远', '清镇', '邛崃', '琼海', '琼山', '曲阜', '曲靖', '衢州', '泉州', '任丘', '日喀则', '日照', '荣成', '如皋', '汝州', '乳山', '瑞安', '瑞昌', '瑞金', '瑞丽', '三河', '三门峡', '三明', '三水', '三亚', '沙河', '厦门', '汕头', '汕尾', '商丘', '商州', '上饶', '上虞', '尚志', '韶关', '韶山', '邵武', '邵阳', '绍兴', '深圳', '深州', '沈阳', '十堰', '石河子', '石家庄', '石狮', '石首', '石嘴山', '寿光', '舒兰', '双城', '双鸭山', '顺德', '朔州', '思茅', '四会', '四平', '松原', '苏州', '宿迁', '宿州', '绥芬河', '绥化', '随州', '遂宁', '塔城', '台北', '台山', '台州', '太仓', '太原', '泰安', '泰兴', '泰州', '唐山', '洮南', '滕州', '天门', '天水', '天长', '铁法', '铁力', '铁岭', '通化', '通辽', '通什', '通州', '同江', '桐乡', '铜川', '铜陵', '铜仁', '图们', '吐鲁番', '瓦房店', '畹町', '万县', '万源', '威海', '潍坊', '卫辉', '渭南', '温岭', '温州', '文登', '乌海', '乌兰浩特', '乌鲁木齐', '无锡', '吴川', '吴江', '吴忠', '芜湖', '梧州', '五常', '五大连池', '武安', '武冈', '武汉', '武威', '武穴', '武夷山', '舞钢', '西安', '西昌', '西峰', '西宁', '锡林浩特', '仙桃', '咸宁', '咸阳', '湘潭', '湘乡', '襄樊', '项城', '萧山', '孝感', '孝义', '忻州', '辛集', '新会', '新乐', '新密', '新民', '新泰', '新乡', '新沂', '新余', '新郑', '信阳', '邢台', '荥阳', '兴城', '兴化', '兴宁', '兴平', '兴义', '徐州', '许昌', '宣威', '宣州', '牙克石', '雅安', '烟台', '延安', '延吉', '盐城', '盐在', '兖州', '偃师', '扬中', '扬州', '阳春', '阳江', '阳泉', '伊春', '伊宁', '仪征', '宜宾', '宜昌', '宜城', '宜春', '宜兴', '宜州', '义马', '义乌', '益阳', '银川', '应城', '英德', '鹰潭', '营口', '永安', '永川', '永济', '永康', '永州', '余杭', '余姚', '愉树', '榆次', '榆林', '禹城', '禹州', '玉林', '玉门', '玉溪', '沅江', '原平', '岳阳', '云浮', '运城', '枣阳', '枣庄', '增城', '扎兰屯', '湛江', '张家港', '张家界', '张家口', '张掖', '章丘', '漳平', '漳州', '樟树', '长春', '长葛', '长乐', '长沙', '长治', '招远', '昭通', '肇东', '肇庆', '镇江', '郑州', '枝城', '中山', '钟祥', '舟山', '周口', '株洲', '珠海', '诸城', '诸暨', '驻马店', '庄河', '涿州', '资兴', '资阳', '淄博', '自贡', '邹城', '遵化', '遵义', '晋中', '吕梁', '呼伦贝尔', '巴彦淖尔', '抚州', '襄阳', '黄冈', '红河', '文山', '商洛', '定西', '陇南', '北京市', '天安门', '东城区', '西城区', '崇文区', '宣武区', '丰台区', '石景山区', '海淀区', '门头沟区', '房山区', '通州区', '顺义区', '昌平区', '大兴区', '怀柔区', '平谷区', '密云区', '延庆区', '天津市', '河西区', '南开区', '河北区', '红桥区', '塘沽区', '汉沽区', '大港区', '东丽区', '西青区', '津南区', '北辰区', '武清区', '宝坻区', '滨海新区', '宁河县', '静海县', '蓟县', '石家庄市', '井陉矿区', '裕华区', '井陉县', '正定县', '栾城县', '行唐县', '灵寿县', '高邑县', '深泽县', '赞皇县', '无极县', '平山县', '元氏县', '赵县', '辛集市', '藁城市', '晋州市', '新乐市', '鹿泉市', '唐山市', '路南区', '路北区', '古冶区', '开平区', '丰南区', '丰润区', '滦县', '滦南县', '乐亭县', '迁西县', '玉田县', '唐海县', '遵化市', '迁安市', '秦皇岛市', '海港区', '山海关区', '北戴河区', '青龙满族自治县', '昌黎县', '抚宁县', '卢龙县', '邯郸市', '邯山区', '丛台区', '复兴区', '峰峰矿区', '邯郸县', '临漳县', '成安县', '大名县', '涉县', '磁县', '肥乡县', '永年县', '邱县', '鸡泽县', '广平县', '馆陶县', '魏县', '曲周县', '武安市', '邢台市', '邢台县', '临城县', '内丘县', '柏乡县', '隆尧县', '任县', '南和县', '宁晋县', '巨鹿县', '新河县', '广宗县', '平乡县', '威县', '清河县', '临西县', '南宫市', '沙河市', '保定市', '北市区', '南市区', '满城县', '清苑县', '涞水县', '阜平县', '徐水县', '定兴县', '唐县', '高阳县', '容城县', '涞源县', '望都县', '安新县', '易县', '曲阳县', '蠡县', '顺平县', '博野县', '雄县', '涿州市', '定州市', '安国市', '高碑店市', '张家口市', '宣化区', '下花园区', '宣化县', '张北县', '康保县', '沽源县', '尚义县', '蔚县', '阳原县', '怀安县', '万全县', '怀来县', '涿鹿县', '赤城县', '崇礼县', '承德市', '双滦区', '鹰手营子矿区', '承德县', '兴隆县', '平泉县', '滦平县', '隆化县', '丰宁满族自治县', '宽城满族自治县', '围场满族蒙古族自治县', '沧州市', '运河区', '沧县', '青县', '东光县', '海兴县', '盐山县', '肃宁县', '南皮县', '吴桥县', '献县', '孟村回族自治县', '泊头市', '任丘市', '黄骅市', '河间市', '廊坊市', '安次区', '广阳区', '固安县', '永清县', '香河县', '大城县', '文安县', '大厂回族自治县', '霸州市', '三河市', '衡水市', '桃城区', '枣强县', '武邑县', '武强县', '饶阳县', '安平县', '故城县', '景县', '阜城县', '冀州市', '深州市', '太原市', '小店区', '迎泽区', '杏花岭区', '尖草坪区', '万柏林区', '晋源区', '清徐县', '阳曲县', '娄烦县', '古交市', '大同市', '南郊区', '新荣区', '阳高县', '天镇县', '广灵县', '灵丘县', '浑源县', '左云县', '大同县', '阳泉市', '平定县', '盂县', '长治市', '长治县', '襄垣县', '屯留县', '平顺县', '黎城县', '壶关县', '长子县', '武乡县', '沁县', '沁源县', '潞城市', '晋城市', '沁水县', '阳城县', '陵川县', '泽州县', '高平市', '朔州市', '朔城区', '山阴县', '应县', '右玉县', '怀仁县', '晋中市', '榆次区', '榆社县', '左权县', '和顺县', '昔阳县', '寿阳县', '太谷县', '祁县', '平遥县', '灵石县', '介休市', '运城市', '盐湖区', '临猗县', '万荣县', '闻喜县', '稷山县', '新绛县', '绛县', '垣曲县', '夏县', '平陆县', '芮城县', '河津市', '忻州市', '忻府区', '定襄县', '五台县', '代县', '繁峙县', '宁武县', '静乐县', '神池县', '五寨县', '岢岚县', '河曲县', '偏关县', '原平市', '临汾市', '尧都区', '曲沃县', '翼城县', '襄汾县', '洪洞县', '古县', '安泽县', '浮山县', '吉县', '乡宁县', '大宁县', '隰县', '永和县', '蒲县', '汾西县', '侯马市', '霍州市', '吕梁市', '离石区', '文水县', '交城县', '兴县', '临县', '柳林县', '石楼县', '岚县', '方山县', '中阳县', '交口县', '孝义市', '汾阳市', '呼和浩特市', '回民区', '玉泉区', '赛罕区', '土默特左旗', '托克托县', '和林格尔县', '清水河县', '武川县', '包头市', '东河区', '昆都仑区', '石拐区', '九原区', '土默特右旗', '固阳县', '达尔罕茂明安联合旗', '乌海市', '海勃湾区', '海南区', '乌达区', '赤峰市', '红山区', '元宝山区', '松山区', '阿鲁科尔沁旗', '巴林左旗', '巴林右旗', '林西县', '克什克腾旗', '翁牛特旗', '喀喇沁旗', '宁城县', '敖汉旗', '通辽市', '科尔沁区', '科尔沁左翼中旗', '科尔沁左翼后旗', '开鲁县', '库伦旗', '奈曼旗', '扎鲁特旗', '霍林郭勒市', '鄂尔多斯市', '东胜区', '达拉特旗', '准格尔旗', '鄂托克前旗', '鄂托克旗', '杭锦旗', '乌审旗', '伊金霍洛旗', '呼伦贝尔市', '海拉尔区', '阿荣旗', '鄂伦春自治旗', '鄂温克族自治旗', '陈巴尔虎旗', '新巴尔虎左旗', '新巴尔虎右旗', '满洲里市', '牙克石市', '扎兰屯市', '额尔古纳市', '根河市', '巴彦淖尔市', '临河区', '五原县', '磴口县', '乌拉特前旗', '乌拉特中旗', '乌拉特后旗', '杭锦后旗', '乌兰察布市', '集宁区', '卓资县', '化德县', '商都县', '兴和县', '凉城县', '察哈尔右翼前旗', '察哈尔右翼中旗', '察哈尔右翼后旗', '四子王旗', '丰镇市', '兴安盟', '乌兰浩特市', '阿尔山市', '科尔沁右翼前旗', '科尔沁右翼中旗', '扎赉特旗', '突泉县', '锡林郭勒盟', '二连浩特市', '锡林浩特市', '阿巴嘎旗', '苏尼特左旗', '苏尼特右旗', '东乌珠穆沁旗', '西乌珠穆沁旗', '太仆寺旗', '镶黄旗', '正镶白旗', '正蓝旗', '多伦县', '阿拉善盟', '阿拉善左旗', '阿拉善右旗', '额济纳旗', '沈阳市', '和平区', '沈河区', '大东区', '皇姑区', '铁西区', '苏家屯区', '东陵区', '新城子区', '于洪区', '辽中县', '康平县', '法库县', '新民市', '大连市', '中山区', '西岗区', '沙河口区', '甘井子区', '旅顺口区', '金州区', '长海县', '瓦房店市', '普兰店市', '庄河市', '鞍山市', '立山区', '千山区', '台安县', '岫岩满族自治县', '海城市', '抚顺市', '新抚区', '东洲区', '望花区', '顺城区', '抚顺县', '新宾满族自治县', '清原满族自治县', '本溪市', '平山区', '溪湖区', '明山区', '南芬区', '本溪满族自治县', '桓仁满族自治县', '丹东市', '元宝区', '振兴区', '振安区', '宽甸满族自治县', '东港市', '凤城市', '锦州市', '古塔区', '凌河区', '太和区', '黑山县', '义县', '凌海市', '营口市', '站前区', '西市区', '鲅鱼圈区', '老边区', '盖州市', '大石桥市', '阜新市', '海州区', '太平区', '清河门区', '细河区', '阜新蒙古族自治县', '彰武县', '辽阳市', '白塔区', '文圣区', '宏伟区', '弓长岭区', '太子河区', '辽阳县', '灯塔市', '盘锦市', '双台子区', '兴隆台区', '大洼县', '盘山县', '铁岭市', '银州区', '铁岭县', '西丰县', '昌图县', '调兵山市', '开原市', '朝阳市', '双塔区', '龙城区', '朝阳县', '建平县', '北票市', '凌源市', '葫芦岛市', '连山区', '龙港区', '南票区', '绥中县', '建昌县', '兴城市', '长春市', '南关区', '宽城区', '朝阳区', '二道区', '绿园区', '双阳区', '农安县', '九台市', '榆树市', '德惠市', '吉林市', '昌邑区', '龙潭区', '船营区', '丰满区', '永吉县', '蛟河市', '桦甸市', '舒兰市', '磐石市', '四平市', '铁东区', '梨树县', '伊通满族自治县', '公主岭市', '双辽市', '辽源市', '龙山区', '西安区', '东丰县', '东辽县', '通化市', '东昌区', '二道江区', '通化县', '辉南县', '柳河县', '梅河口市', '集安市', '白山市', '八道江区', '抚松县', '靖宇县', '长白朝鲜族自治县', '临江市', '松原市', '宁江区', '长岭县', '乾安县', '扶余县', '白城市', '洮北区', '镇赉县', '通榆县', '洮南市', '大安市', '延边朝鲜族自治州', '延吉市', '图们市', '敦化市', '珲春市', '龙井市', '和龙市', '汪清县', '安图县', '哈尔滨市', '道里区', '南岗区', '道外区', '香坊区', '平房区', '松北区', '呼兰区', '依兰县', '方正县', '宾县', '巴彦县', '木兰县', '通河县', '延寿县', '双城市', '尚志市', '五常市', '齐齐哈尔市', '龙沙区', '建华区', '铁锋区', '昂昂溪区', '富拉尔基区', '龙江县', '依安县', '泰来县', '甘南县', '富裕县', '克山县', '克东县', '拜泉县', '讷河市', '鸡西市', '鸡冠区', '恒山区', '滴道区', '梨树区', '城子河区', '麻山区', '鸡东县', '虎林市', '密山市', '鹤岗市', '向阳区', '工农区', '兴安区', '东山区', '兴山区', '萝北县', '绥滨县', '双鸭山市', '尖山区', '岭东区', '四方台区', '集贤县', '友谊县', '宝清县', '饶河县', '大庆市', '萨尔图区', '龙凤区', '让胡路区', '红岗区', '大同区', '肇州县', '肇源县', '林甸县', '杜尔伯特蒙古族自治县', '伊春市', '南岔区', '友好区', '西林区', '翠峦区', '新青区', '美溪区', '金山屯区', '五营区', '乌马河区', '汤旺河区', '带岭区', '乌伊岭区', '红星区', '上甘岭区', '嘉荫县', '铁力市', '佳木斯市', '前进区', '东风区', '桦南县', '桦川县', '汤原县', '抚远县', '同江市', '富锦市', '七台河市', '新兴区', '桃山区', '茄子河区', '勃利县', '牡丹江市', '东安区', '阳明区', '爱民区', '东宁县', '林口县', '绥芬河市', '海林市', '宁安市', '穆棱市', '黑河市', '爱辉区', '逊克县', '孙吴县', '北安市', '五大连池市', '绥化市', '北林区', '望奎县', '兰西县', '青冈县', '庆安县', '明水县', '绥棱县', '安达市', '肇东市', '海伦市', '大兴安岭地区', '呼玛县', '塔河县', '漠河县', '上海市', '黄浦区', '卢湾区', '徐汇区', '长宁区', '静安区', '闸北区', '虹口区', '杨浦区', '闵行区', '宝山区', '嘉定区', '浦东新区', '金山区', '松江区', '青浦区', '南汇区', '奉贤区', '崇明县', '南京市', '玄武区', '白下区', '秦淮区', '建邺区', '下关区', '浦口区', '栖霞区', '雨花台区', '江宁区', '六合区', '溧水县', '高淳县', '无锡市', '崇安区', '南长区', '北塘区', '锡山区', '惠山区', '滨湖区', '江阴市', '宜兴市', '徐州市', '云龙区', '九里区', '贾汪区', '泉山区', '丰县', '沛县', '铜山县', '睢宁县', '新沂市', '邳州市', '常州市', '天宁区', '钟楼区', '戚墅堰区', '新北区', '武进区', '溧阳市', '金坛市', '苏州市', '沧浪区', '平江区', '金阊区', '虎丘区', '吴中区', '相城区', '常熟市', '张家港市', '昆山市', '吴江市', '太仓市', '南通市', '崇川区', '港闸区', '海安县', '如东县', '启东市', '如皋市', '通州市', '海门市', '连云港市', '连云区', '新浦区', '赣榆县', '东海县', '灌云县', '灌南县', '淮安市', '清河区', '楚州区', '淮阴区', '清浦区', '涟水县', '洪泽县', '盱眙县', '金湖县', '盐城市', '亭湖区', '盐都区', '响水县', '滨海县', '阜宁县', '射阳县', '建湖县', '东台市', '大丰市', '扬州市', '广陵区', '邗江区', '维扬区', '宝应县', '仪征市', '高邮市', '江都市', '镇江市', '京口区', '润州区', '丹徒区', '丹阳市', '扬中市', '句容市', '泰州市', '兴化市', '靖江市', '泰兴市', '姜堰市', '宿迁市', '宿城区', '宿豫区', '沭阳县', '泗阳县', '泗洪县', '杭州市', '上城区', '下城区', '江干区', '拱墅区', '滨江区', '萧山区', '余杭区', '桐庐县', '淳安县', '建德市', '富阳市', '临安市', '宁波市', '海曙区', '江东区', '北仑区', '镇海区', '鄞州区', '象山县', '宁海县', '余姚市', '慈溪市', '奉化市', '温州市', '鹿城区', '龙湾区', '洞头县', '永嘉县', '平阳县', '苍南县', '文成县', '泰顺县', '瑞安市', '乐清市', '嘉兴市', '秀洲区', '嘉善县', '海盐县', '海宁市', '平湖市', '桐乡市', '湖州市', '吴兴区', '南浔区', '德清县', '长兴县', '安吉县', '绍兴市', '越城区', '绍兴县', '新昌县', '诸暨市', '上虞市', '嵊州市', '金华市', '婺城区', '金东区', '武义县', '浦江县', '磐安县', '兰溪市', '义乌市', '东阳市', '永康市', '衢州市', '柯城区', '衢江区', '常山县', '开化县', '龙游县', '江山市', '舟山市', '定海区', '普陀区', '岱山县', '嵊泗县', '台州市', '椒江区', '黄岩区', '路桥区', '玉环县', '三门县', '天台县', '仙居县', '温岭市', '临海市', '丽水市', '莲都区', '青田县', '缙云县', '遂昌县', '松阳县', '云和县', '庆元县', '景宁畲族自治县', '龙泉市', '合肥市', '瑶海区', '庐阳区', '蜀山区', '包河区', '长丰县', '肥东县', '肥西县', '芜湖市', '镜湖区', '鸠江区', '芜湖县', '繁昌县', '南陵县', '蚌埠市', '龙子湖区', '蚌山区', '禹会区', '淮上区', '怀远县', '五河县', '固镇县', '淮南市', '大通区', '田家庵区', '谢家集区', '八公山区', '潘集区', '凤台县', '马鞍山市', '金家庄区', '花山区', '雨山区', '当涂县', '淮北市', '杜集区', '相山区', '烈山区', '濉溪县', '铜陵市', '铜官山区', '狮子山区', '铜陵县', '安庆市', '迎江区', '大观区', '怀宁县', '枞阳县', '潜山县', '太湖县', '宿松县', '望江县', '岳西县', '桐城市', '黄山市', '屯溪区', '黄山区', '徽州区', '歙县', '休宁县', '黟县', '祁门县', '滁州市', '琅琊区', '南谯区', '来安县', '全椒县', '定远县', '凤阳县', '天长市', '明光市', '阜阳市', '颍州区', '颍东区', '颍泉区', '临泉县', '太和县', '阜南县', '颍上县', '宿州市', '埇桥区', '砀山县', '萧县', '灵璧县', '泗县', '巢湖市', '居巢区', '庐江县', '无为县', '含山县', '和县', '六安市', '金安区', '裕安区', '寿县', '霍邱县', '舒城县', '金寨县', '霍山县', '亳州市', '谯城区', '涡阳县', '蒙城县', '利辛县', '池州市', '贵池区', '东至县', '石台县', '青阳县', '宣城市', '宣州区', '郎溪县', '广德县', '泾县', '绩溪县', '旌德县', '宁国市', '福州市', '鼓楼区', '台江区', '仓山区', '马尾区', '晋安区', '闽侯县', '连江县', '罗源县', '闽清县', '永泰县', '平潭县', '福清市', '长乐市', '厦门市', '思明区', '海沧区', '湖里区', '集美区', '同安区', '翔安区', '莆田市', '城厢区', '涵江区', '荔城区', '秀屿区', '仙游县', '三明市', '梅列区', '三元区', '明溪县', '清流县', '宁化县', '大田县', '尤溪县', '沙县', '将乐县', '泰宁县', '建宁县', '永安市', '泉州市', '鲤城区', '丰泽区', '洛江区', '泉港区', '惠安县', '安溪县', '永春县', '德化县', '金门县', '石狮市', '晋江市', '南安市', '漳州市', '芗城区', '龙文区', '云霄县', '漳浦县', '诏安县', '长泰县', '东山县', '南靖县', '平和县', '华安县', '龙海市', '南平市', '延平区', '顺昌县', '浦城县', '光泽县', '松溪县', '政和县', '邵武市', '武夷山市', '建瓯市', '建阳市', '龙岩市', '新罗区', '长汀县', '永定县', '上杭县', '武平县', '连城县', '漳平市', '宁德市', '蕉城区', '霞浦县', '古田县', '屏南县', '寿宁县', '周宁县', '柘荣县', '福安市', '福鼎市', '南昌市', '东湖区', '西湖区', '青云谱区', '湾里区', '青山湖区', '南昌县', '新建县', '安义县', '进贤县', '景德镇市', '昌江区', '珠山区', '浮梁县', '乐平市', '萍乡市', '安源区', '湘东区', '莲花县', '上栗县', '芦溪县', '九江市', '庐山区', '浔阳区', '九江县', '武宁县', '修水县', '永修县', '德安县', '星子县', '都昌县', '湖口县', '彭泽县', '瑞昌市', '新余市', '渝水区', '分宜县', '鹰潭市', '月湖区', '余江县', '贵溪市', '赣州市', '章贡区', '赣县', '信丰县', '大余县', '上犹县', '崇义县', '安远县', '龙南县', '定南县', '全南县', '宁都县', '于都县', '兴国县', '会昌县', '寻乌县', '石城县', '瑞金市', '南康市', '吉安市', '吉州区', '青原区', '吉安县', '吉水县', '峡江县', '新干县', '永丰县', '泰和县', '遂川县', '万安县', '安福县', '永新县', '井冈山市', '宜春市', '袁州区', '奉新县', '万载县', '上高县', '宜丰县', '靖安县', '铜鼓县', '丰城市', '樟树市', '高安市', '抚州市', '临川区', '南城县', '黎川县', '南丰县', '崇仁县', '乐安县', '宜黄县', '金溪县', '资溪县', '东乡县', '广昌县', '上饶市', '信州区', '上饶县', '广丰县', '玉山县', '铅山县', '横峰县', '弋阳县', '余干县', '鄱阳县', '万年县', '婺源县', '德兴市', '济南市', '历下区', '市中区', '槐荫区', '天桥区', '历城区', '长清区', '平阴县', '济阳县', '商河县', '章丘市', '青岛市', '市南区', '市北区', '四方区', '黄岛区', '崂山区', '李沧区', '城阳区', '胶州市', '即墨市', '平度市', '胶南市', '莱西市', '淄博市', '张店区', '博山区', '临淄区', '周村区', '桓台县', '高青县', '沂源县', '枣庄市', '薛城区', '峄城区', '台儿庄区', '山亭区', '滕州市', '东营市', '东营区', '河口区', '垦利县', '利津县', '广饶县', '烟台市', '芝罘区', '福山区', '牟平区', '莱山区', '长岛县', '龙口市', '莱阳市', '莱州市', '蓬莱市', '招远市', '栖霞市', '海阳市', '潍坊市', '潍城区', '寒亭区', '坊子区', '奎文区', '临朐县', '昌乐县', '青州市', '诸城市', '寿光市', '安丘市', '高密市', '昌邑市', '济宁市', '任城区', '微山县', '鱼台县', '金乡县', '嘉祥县', '汶上县', '泗水县', '梁山县', '曲阜市', '兖州市', '邹城市', '泰安市', '泰山区', '岱岳区', '宁阳县', '东平县', '新泰市', '肥城市', '威海市', '环翠区', '文登市', '荣成市', '乳山市', '日照市', '东港区', '岚山区', '五莲县', '莒县', '莱芜市', '莱城区', '钢城区', '临沂市', '兰山区', '罗庄区', '河东区', '沂南县', '郯城县', '沂水县', '苍山县', '费县', '平邑县', '莒南县', '蒙阴县', '临沭县', '德州市', '德城区', '陵县', '宁津县', '庆云县', '临邑县', '齐河县', '平原县', '夏津县', '武城县', '乐陵市', '禹城市', '聊城市', '东昌府区', '阳谷县', '莘县', '茌平县', '东阿县', '冠县', '高唐县', '临清市', '滨州市', '滨城区', '惠民县', '阳信县', '无棣县', '沾化县', '博兴县', '邹平县', '牡丹区', '曹县', '单县', '成武县', '巨野县', '郓城县', '鄄城县', '定陶县', '东明县', '郑州市', '中原区', '二七区', '管城回族区', '金水区', '上街区', '惠济区', '中牟县', '巩义市', '荥阳市', '新密市', '新郑市', '登封市', '开封市', '龙亭区', '顺河回族区', '杞县', '通许县', '尉氏县', '开封县', '兰考县', '洛阳市', '老城区', '西工区', '涧西区', '吉利区', '洛龙区', '孟津县', '新安县', '栾川县', '嵩县', '汝阳县', '宜阳县', '洛宁县', '伊川县', '偃师市', '平顶山市', '新华区', '卫东区', '石龙区', '湛河区', '宝丰县', '叶县', '鲁山县', '郏县', '舞钢市', '汝州市', '安阳市', '文峰区', '北关区', '殷都区', '龙安区', '安阳县', '汤阴县', '滑县', '内黄县', '林州市', '鹤壁市', '鹤山区', '山城区', '淇滨区', '浚县', '淇县', '新乡市', '红旗区', '卫滨区', '凤泉区', '牧野区', '新乡县', '获嘉县', '原阳县', '延津县', '封丘县', '长垣县', '卫辉市', '辉县市', '焦作市', '解放区', '中站区', '马村区', '山阳区', '修武县', '博爱县', '武陟县', '温县', '济源市', '沁阳市', '孟州市', '濮阳市', '华龙区', '清丰县', '南乐县', '范县', '台前县', '濮阳县', '许昌市', '魏都区', '许昌县', '鄢陵县', '襄城县', '禹州市', '长葛市', '漯河市', '郾城区', '召陵区', '舞阳县', '临颍县', '三门峡市', '湖滨区', '渑池县', '陕县', '卢氏县', '义马市', '灵宝市', '南阳市', '宛城区', '卧龙区', '南召县', '方城县', '西峡县', '镇平县', '内乡县', '淅川县', '社旗县', '唐河县', '新野县', '桐柏县', '邓州市', '商丘市', '梁园区', '睢阳区', '民权县', '睢县', '宁陵县', '柘城县', '虞城县', '夏邑县', '永城市', '信阳市', '浉河区', '平桥区', '罗山县', '光山县', '新县', '商城县', '固始县', '潢川县', '淮滨县', '息县', '周口市', '扶沟县', '西华县', '商水县', '沈丘县', '郸城县', '淮阳县', '太康县', '鹿邑县', '项城市', '驻马店市', '驿城区', '西平县', '上蔡县', '平舆县', '正阳县', '确山县', '泌阳县', '汝南县', '遂平县', '新蔡县', '武汉市', '江岸区', '江汉区', '硚口区', '汉阳区', '武昌区', '青山区', '洪山区', '东西湖区', '汉南区', '蔡甸区', '江夏区', '黄陂区', '新洲区', '黄石市', '黄石港区', '西塞山区', '下陆区', '铁山区', '阳新县', '大冶市', '十堰市', '茅箭区', '张湾区', '郧县', '郧西县', '竹山县', '竹溪县', '房县', '丹江口市', '宜昌市', '西陵区', '伍家岗区', '点军区', '猇亭区', '夷陵区', '远安县', '兴山县', '秭归县', '长阳土家族自治县', '五峰土家族自治县', '宜都市', '当阳市', '枝江市', '襄樊市', '襄城区', '樊城区', '襄阳区', '南漳县', '谷城县', '保康县', '老河口市', '枣阳市', '宜城市', '鄂州市', '梁子湖区', '华容区', '鄂城区', '荆门市', '东宝区', '掇刀区', '京山县', '沙洋县', '钟祥市', '孝感市', '孝南区', '孝昌县', '大悟县', '云梦县', '应城市', '安陆市', '汉川市', '荆州市', '沙市区', '荆州区', '公安县', '监利县', '江陵县', '石首市', '洪湖市', '松滋市', '黄冈市', '黄州区', '团风县', '红安县', '罗田县', '英山县', '浠水县', '蕲春县', '黄梅县', '麻城市', '武穴市', '咸宁市', '咸安区', '嘉鱼县', '通城县', '崇阳县', '通山县', '赤壁市', '随州市', '曾都区', '广水市', '恩施土家族苗族自治州', '恩施市', '利川市', '建始县', '巴东县', '宣恩县', '咸丰县', '来凤县', '鹤峰县', '仙桃市', '潜江市', '天门市', '神农架林区', '长沙市', '芙蓉区', '天心区', '岳麓区', '开福区', '雨花区', '长沙县', '望城县', '宁乡县', '浏阳市', '株洲市', '荷塘区', '芦淞区', '石峰区', '天元区', '株洲县', '攸县', '茶陵县', '炎陵县', '醴陵市', '湘潭市', '雨湖区', '岳塘区', '湘潭县', '湘乡市', '韶山市', '衡阳市', '珠晖区', '雁峰区', '石鼓区', '蒸湘区', '南岳区', '衡阳县', '衡南县', '衡山县', '衡东县', '祁东县', '耒阳市', '常宁市', '邵阳市', '双清区', '大祥区', '北塔区', '邵东县', '新邵县', '邵阳县', '隆回县', '洞口县', '绥宁县', '新宁县', '城步苗族自治县', '武冈市', '岳阳市', '岳阳楼区', '云溪区', '君山区', '岳阳县', '华容县', '湘阴县', '平江县', '汨罗市', '临湘市', '常德市', '武陵区', '鼎城区', '安乡县', '汉寿县', '澧县', '临澧县', '桃源县', '石门县', '津市市', '张家界市', '永定区', '武陵源区', '慈利县', '桑植县', '益阳市', '资阳区', '赫山区', '南县', '桃江县', '安化县', '沅江市', '郴州市', '北湖区', '苏仙区', '桂阳县', '宜章县', '永兴县', '嘉禾县', '临武县', '汝城县', '桂东县', '安仁县', '资兴市', '永州市', '冷水滩区', '祁阳县', '东安县', '双牌县', '道县', '江永县', '宁远县', '蓝山县', '新田县', '江华瑶族自治县', '怀化市', '鹤城区', '中方县', '沅陵县', '辰溪县', '溆浦县', '会同县', '麻阳苗族自治县', '新晃侗族自治县', '芷江侗族自治县', '靖州苗族侗族自治县', '通道侗族自治县', '洪江市', '娄底市', '娄星区', '双峰县', '新化县', '冷水江市', '涟源市', '湘西土家族苗族自治州', '吉首市', '泸溪县', '凤凰县', '花垣县', '保靖县', '古丈县', '永顺县', '龙山县', '广州市', '荔湾区', '越秀区', '海珠区', '天河区', '黄埔区', '番禺区', '花都区', '增城市', '从化市', '韶关市', '武江区', '浈江区', '曲江区', '始兴县', '仁化县', '翁源县', '乳源瑶族自治县', '新丰县', '乐昌市', '南雄市', '深圳市', '罗湖区', '福田区', '南山区', '宝安区', '龙岗区', '盐田区', '珠海市', '香洲区', '斗门区', '金湾区', '汕头市', '龙湖区', '金平区', '潮阳区', '潮南区', '澄海区', '南澳县', '佛山市', '南海区', '顺德区', '三水区', '高明区', '江门市', '新会区', '台山市', '开平市', '鹤山市', '恩平市', '湛江市', '赤坎区', '霞山区', '坡头区', '麻章区', '遂溪县', '徐闻县', '廉江市', '雷州市', '吴川市', '茂名市', '茂南区', '茂港区', '电白县', '高州市', '化州市', '信宜市', '肇庆市', '端州区', '鼎湖区', '广宁县', '怀集县', '封开县', '德庆县', '高要市', '四会市', '惠州市', '惠城区', '惠阳区', '博罗县', '惠东县', '龙门县', '梅州市', '梅江区', '梅县', '大埔县', '丰顺县', '五华县', '平远县', '蕉岭县', '兴宁市', '汕尾市', '海丰县', '陆河县', '陆丰市', '河源市', '源城区', '紫金县', '龙川县', '连平县', '和平县', '东源县', '阳江市', '江城区', '阳西县', '阳东县', '阳春市', '清远市', '清城区', '佛冈县', '阳山县', '连山壮族瑶族自治县', '连南瑶族自治县', '清新县', '英德市', '连州市', '东莞市', '中山市', '潮州市', '湘桥区', '潮安县', '饶平县', '揭阳市', '揭东县', '揭西县', '惠来县', '普宁市', '云浮市', '云城区', '新兴县', '郁南县', '云安县', '罗定市', '南宁市', '兴宁区', '江南区', '西乡塘区', '良庆区', '邕宁区', '武鸣县', '隆安县', '马山县', '上林县', '宾阳县', '横县', '柳州市', '柳南区', '柳江县', '柳城县', '鹿寨县', '融安县', '融水苗族自治县', '三江侗族自治县', '桂林市', '阳朔县', '临桂县', '灵川县', '全州县', '兴安县', '永福县', '灌阳县', '龙胜各族自治县', '资源县', '平乐县', '恭城瑶族自治县', '梧州市', '苍梧县', '藤县', '蒙山县', '岑溪市', '北海市', '铁山港区', '合浦县', '防城港市', '港口区', '防城区', '上思县', '东兴市', '钦州市', '钦北区', '灵山县', '浦北县', '贵港市', '覃塘区', '平南县', '桂平市', '玉林市', '容县', '陆川县', '博白县', '兴业县', '北流市', '百色市', '田阳县', '田东县', '平果县', '德保县', '靖西县', '那坡县', '凌云县', '乐业县', '田林县', '西林县', '隆林各族自治县', '贺州市', '昭平县', '钟山县', '富川瑶族自治县', '河池市', '金城江区', '南丹县', '天峨县', '凤山县', '东兰县', '罗城仫佬族自治县', '环江毛南族自治县', '巴马瑶族自治县', '都安瑶族自治县', '大化瑶族自治县', '宜州市', '来宾市', '忻城县', '象州县', '武宣县', '金秀瑶族自治县', '合山市', '崇左市', '扶绥县', '宁明县', '龙州县', '大新县', '天等县', '凭祥市', '海口市', '秀英区', '龙华区', '琼山区', '美兰区', '三亚市', '五指山市', '琼海市', '儋州市', '文昌市', '万宁市', '东方市', '定安县', '屯昌县', '澄迈县', '临高县', '白沙黎族自治县', '昌江黎族自治县', '乐东黎族自治县', '陵水黎族自治县', '保亭黎族苗族自治县', '琼中黎族苗族自治县', '重庆市', '万州区', '涪陵区', '渝中区', '大渡口区', '江北区', '沙坪坝区', '九龙坡区', '南岸区', '北碚区', '万盛区', '双桥区', '渝北区', '巴南区', '黔江区', '长寿区', '綦江县', '潼南县', '铜梁县', '大足县', '荣昌县', '璧山县', '梁平县', '城口县', '丰都县', '垫江县', '武隆县', '忠县', '开县', '云阳县', '奉节县', '巫山县', '巫溪县', '石柱土家族自治县', '秀山土家族苗族自治县', '酉阳土家族苗族自治县', '彭水苗族土家族自治县', '成都市', '锦江区', '青羊区', '金牛区', '武侯区', '成华区', '龙泉驿区', '青白江区', '新都区', '温江区', '金堂县', '双流县', '郫县', '大邑县', '蒲江县', '新津县', '都江堰市', '彭州市', '邛崃市', '崇州市', '自贡市', '自流井区', '贡井区', '大安区', '沿滩区', '荣县', '富顺县', '攀枝花市', '东区', '西区', '仁和区', '米易县', '盐边县', '泸州市', '江阳区', '纳溪区', '龙马潭区', '泸县', '合江县', '叙永县', '古蔺县', '德阳市', '旌阳区', '中江县', '罗江县', '广汉市', '什邡市', '绵竹市', '绵阳市', '涪城区', '游仙区', '三台县', '盐亭县', '安县', '梓潼县', '北川羌族自治县', '平武县', '江油市', '广元市', '元坝区', '朝天区', '旺苍县', '青川县', '剑阁县', '苍溪县', '遂宁市', '船山区', '安居区', '蓬溪县', '射洪县', '大英县', '内江市', '东兴区', '威远县', '资中县', '隆??县', '乐山市', '沙湾区', '五通桥区', '金口河区', '犍为县', '井研县', '夹江县', '沐川县', '峨边彝族自治县', '马边彝族自治县', '峨眉山市', '南充市', '顺庆区', '高坪区', '嘉陵区', '南部县', '营山县', '蓬安县', '仪陇县', '西充县', '阆中市', '眉山市', '东坡区', '仁寿县', '彭山县', '洪雅县', '丹棱县', '青神县', '宜宾市', '翠屏区', '宜宾县', '南溪县', '江安县', '长宁县', '高县', '珙县', '筠连县', '兴文县', '屏山县', '广安市', '岳池县', '武胜县', '邻水县', '华蓥市', '达州市', '通川区', '达县', '宣汉县', '开江县', '大竹县', '渠县', '万源市', '雅安市', '雨城区', '名山县', '荥经县', '汉源县', '石棉县', '天全县', '芦山县', '宝兴县', '巴中市', '巴州区', '通江县', '南江县', '平昌县', '资阳市', '雁江区', '安岳县', '乐至县', '简阳市', '阿坝藏族羌族自治州', '汶川县', '理县', '茂县', '松潘县', '九寨沟县', '金川县', '小金县', '黑水县', '马尔康县', '壤塘县', '阿坝县', '若尔盖县', '红原县', '甘孜藏族自治州', '康定县', '泸定县', '丹巴县', '九龙县', '雅江县', '道孚县', '炉霍县', '甘孜县', '新龙县', '德格县', '白玉县', '石渠县', '色达县', '理塘县', '巴塘县', '乡城县', '稻城县', '得荣县', '凉山彝族自治州', '西昌市', '木里藏族自治县', '盐源县', '德昌县', '会理县', '会东县', '宁南县', '普格县', '布拖县', '金阳县', '昭觉县', '喜德县', '冕宁县', '越西县', '甘洛县', '美姑县', '雷波县', '贵阳市', '南明区', '云岩区', '乌当区', '白云区', '小河区', '开阳县', '息烽县', '修文县', '清镇市', '六盘水市', '钟山区', '六枝特区', '水城县', '盘县', '遵义市', '红花岗区', '汇川区', '遵义县', '桐梓县', '绥阳县', '正安县', '道真仡佬族苗族自治县', '务川仡佬族苗族自治县', '凤冈县', '湄潭县', '余庆县', '习水县', '赤水市', '仁怀市', '安顺市', '西秀区', '平坝县', '普定县', '镇宁布依族苗族自治县', '关岭布依族苗族自治县', '紫云苗族布依族自治县', '铜仁地区', '铜仁市', '江口县', '玉屏侗族自治县', '石阡县', '思南县', '印江土家族苗族自治县', '德江县', '沿河土家族自治县', '松桃苗族自治县', '万山特区', '兴义市', '兴仁县', '普安县', '晴隆县', '贞丰县', '望谟县', '册亨县', '安龙县', '毕节地区', '毕节市', '大方县', '黔西县', '金沙县', '织金县', '纳雍县', '赫章县', '黔东南苗族侗族自治州', '凯里市', '黄平县', '施秉县', '三穗县', '镇远县', '岑巩县', '天柱县', '锦屏县', '剑河县', '台江县', '黎平县', '榕江县', '从江县', '雷山县', '麻江县', '丹寨县', '黔南布依族苗族自治州', '都匀市', '福泉市', '荔波县', '贵定县', '瓮安县', '独山县', '平塘县', '罗甸县', '长顺县', '龙里县', '惠水县', '三都水族自治县', '昆明市', '五华区', '盘龙区', '官渡区', '西山区', '东川区', '呈贡县', '晋宁县', '富民县', '宜良县', '石林彝族自治县', '嵩明县', '禄劝彝族苗族自治县', '寻甸回族彝族自治县', '安宁市', '曲靖市', '麒麟区', '马龙县', '陆良县', '师宗县', '罗平县', '富源县', '会泽县', '沾益县', '宣威市', '玉溪市', '江川县', '澄江县', '通海县', '华宁县', '易门县', '峨山彝族自治县', '新平彝族傣族自治县', '保山市', '隆阳区', '施甸县', '腾冲县', '龙陵县', '昌宁县', '昭通市', '昭阳区', '鲁甸县', '巧家县', '盐津县', '大关县', '永善县', '绥江县', '镇雄县', '彝良县', '威信县', '水富县', '丽江市', '古城区', '玉龙纳西族自治县', '永胜县', '华坪县', '宁蒗彝族自治县', '墨江哈尼族自治县', '景东彝族自治县', '景谷傣族彝族自治县', '江城哈尼族彝族自治县', '澜沧拉祜族自治县', '西盟佤族自治县', '临沧市', '临翔区', '凤庆县', '云县', '永德县', '镇康县', '耿马傣族佤族自治县', '沧源佤族自治县', '楚雄彝族自治州', '楚雄市', '双柏县', '牟定县', '南华县', '姚安县', '大姚县', '永仁县', '元谋县', '武定县', '禄丰县', '红河哈尼族彝族自治州', '个旧市', '开远市', '蒙自县', '屏边苗族自治县', '建水县', '石屏县', '弥勒县', '泸西县', '元阳县', '红河县', '绿春县', '河口瑶族自治县', '文山壮族苗族自治州', '文山县', '砚山县', '西畴县', '麻栗坡县', '马关县', '丘北县', '广南县', '富宁县', '西双版纳傣族自治州', '景洪市', '勐海县', '勐腊县', '大理白族自治州', '大理市', '漾濞彝族自治县', '祥云县', '宾川县', '弥渡县', '南涧彝族自治县', '巍山彝族回族自治县', '永平县', '云龙县', '洱源县', '剑川县', '鹤庆县', '德宏傣族景颇族自治州', '瑞丽市', '潞西市', '梁河县', '盈江县', '陇川县', '怒江傈僳族自治州', '泸水县', '福贡县', '贡山独龙族怒族自治县', '兰坪白族普米族自治县', '迪庆藏族自治州', '香格里拉县', '德钦县', '维西傈僳族自治县', '拉萨市', '林周县', '当雄县', '尼木县', '曲水县', '堆龙德庆县', '达孜县', '墨竹工卡县', '昌都地区', '昌都县', '江达县', '贡觉县', '类乌齐县', '丁青县', '察雅县', '八宿县', '左贡县', '芒康县', '洛隆县', '边坝县', '山南地区', '乃东县', '扎囊县', '贡嘎县', '桑日县', '琼结县', '曲松县', '措美县', '洛扎县', '加查县', '隆子县', '错那县', '浪卡子县', '日喀则地区', '日喀则市', '南木林县', '江孜县', '定日县', '萨迦县', '拉孜县', '昂仁县', '谢通门县', '白朗县', '仁布县', '康马县', '定结县', '仲巴县', '亚东县', '吉隆县', '聂拉木县', '萨嘎县', '岗巴县', '那曲地区', '那曲县', '嘉黎县', '比如县', '聂荣县', '安多县', '申扎县', '索县', '班戈县', '巴青县', '尼玛县', '阿里地区', '普兰县', '札达县', '噶尔县', '日土县', '革吉县', '改则县', '措勤县', '林芝地区', '林芝县', '工布江达县', '米林县', '墨脱县', '波密县', '察隅县', '朗县', '西安市', '新城区', '碑林区', '莲湖区', '灞桥区', '未央区', '雁塔区', '阎良区', '临潼区', '长安区', '蓝田县', '周至县', '户县', '高陵县', '铜川市', '王益区', '印台区', '耀州区', '宜君县', '宝鸡市', '渭滨区', '金台区', '陈仓区', '凤翔县', '岐山县', '扶风县', '眉县', '陇县', '千阳县', '麟游县', '凤县', '太白县', '咸阳市', '秦都区', '杨凌区', '渭城区', '三原县', '泾阳县', '乾县', '礼泉县', '永寿县', '彬县', '长武县', '旬邑县', '淳化县', '武功县', '兴平市', '渭南市', '临渭区', '华县', '潼关县', '大荔县', '合阳县', '澄城县', '蒲城县', '白水县', '富平县', '韩城市', '华阴市', '延安市', '宝塔区', '延长县', '延川县', '子长县', '安塞县', '志丹县', '甘泉县', '富县', '洛川县', '宜川县', '黄龙县', '黄陵县', '汉中市', '汉台区', '南郑县', '城固县', '洋县', '西乡县', '勉县', '宁强县', '略阳县', '镇巴县', '留坝县', '佛坪县', '榆林市', '榆阳区', '神木县', '府谷县', '横山县', '靖边县', '定边县', '绥德县', '米脂县', '佳县', '吴堡县', '清涧县', '子洲县', '安康市', '汉滨区', '汉阴县', '石泉县', '宁陕县', '紫阳县', '岚皋县', '平利县', '镇坪县', '旬阳县', '白河县', '商洛市', '商州区', '洛南县', '丹凤县', '商南县', '山阳县', '镇安县', '柞水县', '兰州市', '城关区', '西固区', '红古区', '永登县', '皋兰县', '榆中县', '嘉峪关市', '金昌市', '金川区', '永昌县', '白银市', '白银区', '平川区', '靖远县', '会宁县', '景泰县', '天水市', '清水县', '秦安县', '甘谷县', '武山县', '张家川回族自治县', '武威市', '凉州区', '民勤县', '古浪县', '天祝藏族自治县', '张掖市', '甘州区', '肃南裕固族自治县', '民乐县', '临泽县', '高台县', '山丹县', '平凉市', '崆峒区', '泾川县', '灵台县', '崇信县', '华亭县', '庄浪县', '静宁县', '酒泉市', '肃州区', '金塔县', '肃北蒙古族自治县', '阿克塞哈萨克族自治县', '玉门市', '敦煌市', '庆阳市', '西峰区', '庆城县', '环县', '华池县', '合水县', '正宁县', '宁县', '镇原县', '定西市', '安定区', '通渭县', '陇西县', '渭源县', '临洮县', '漳县', '岷县', '陇南市', '武都区', '成县', '文县', '宕昌县', '康县', '西和县', '礼县', '徽县', '两当县', '临夏回族自治州', '临夏市', '临夏县', '康乐县', '永靖县', '广河县', '和政县', '东乡族自治县', '甘南藏族自治州', '合作市', '临潭县', '卓尼县', '舟曲县', '迭部县', '玛曲县', '碌曲县', '夏河县', '西宁市', '城东区', '城中区', '城西区', '城北区', '大通回族土族自治县', '湟中县', '湟源县', '海东地区', '平安县', '民和回族土族自治县', '乐都县', '互助土族自治县', '化隆回族自治县', '循化撒拉族自治县', '海北藏族自治州', '门源回族自治县', '祁连县', '海晏县', '刚察县', '黄南藏族自治州', '同仁县', '尖扎县', '泽库县', '河南蒙古族自治县', '海南藏族自治州', '共和县', '同德县', '贵德县', '兴海县', '贵南县', '果洛藏族自治州', '玛沁县', '班玛县', '甘德县', '达日县', '久治县', '玛多县', '玉树藏族自治州', '玉树县', '杂多县', '称多县', '治多县', '囊谦县', '曲麻莱县', '海西蒙古族藏族自治州', '格尔木市', '德令哈市', '乌兰县', '都兰县', '天峻县', '银川市', '兴庆区', '西夏区', '金凤区', '永宁县', '贺兰县', '灵武市', '石嘴山市', '大武口区', '惠农区', '平罗县', '吴忠市', '利通区', '盐池县', '同心县', '青铜峡市', '固原市', '原州区', '西吉县', '隆德县', '泾源县', '彭阳县', '中卫市', '沙坡头区', '中宁县', '海原县', '乌鲁木齐市', '天山区', '沙依巴克区', '新市区', '水磨沟区', '头屯河区', '达坂城区', '乌鲁木齐县', '克拉玛依市', '独山子区', '克拉玛依区', '白碱滩区', '乌尔禾区', '吐鲁番地区', '吐鲁番市', '鄯善县', '托克逊县', '哈密地区', '哈密市', '伊吾县', '昌吉回族自治州', '昌吉市', '阜康市', '米泉市', '呼图壁县', '玛纳斯县', '奇台县', '吉木萨尔县', '木垒哈萨克自治县', '博尔塔拉蒙古自治州', '博乐市', '精河县', '温泉县', '巴音郭楞蒙古自治州', '库尔勒市', '轮台县', '尉犁县', '若羌县', '且末县', '焉耆回族自治县', '和静县', '和硕县', '博湖县', '阿克苏地区', '阿克苏市', '温宿县', '库车县', '沙雅县', '新和县', '拜城县', '乌什县', '阿瓦提县', '柯坪县', '阿图什市', '阿克陶县', '阿合奇县', '乌恰县', '喀什地区', '喀什市', '疏附县', '疏勒县', '英吉沙县', '泽普县', '莎车县', '叶城县', '麦盖提县', '岳普湖县', '伽师县', '巴楚县', '和田地区', '和田市', '和田县', '墨玉县', '皮山县', '洛浦县', '策勒县', '于田县', '民丰县', '伊犁哈萨克自治州', '伊宁市', '奎屯市', '伊宁县', '察布查尔锡伯自治县', '霍城县', '巩留县', '新源县', '昭苏县', '特克斯县', '尼勒克县', '塔城地区', '塔城市', '乌苏市', '额敏县', '沙湾县', '托里县', '裕民县', '和布克赛尔蒙古自治县', '阿勒泰地区', '阿勒泰市', '布尔津县', '富蕴县', '福海县', '哈巴河县', '青河县', '吉木乃县', '石河子市', '阿拉尔市', '图木舒克市', '五家渠市', '台北市', '高雄市', '基隆市', '台中市', '台南市', '新竹市', '嘉义市', '台北县', '宜兰县', '桃园县', '苗栗县', '台中县', '彰化县', '南投县', '云林县', '台南县', '高雄县', '屏东县', '台东县', '花莲县', '澎湖县', '北京', '天津', '河北', '山西', '内蒙古', '辽宁', '吉林', '黑龙江', '上海', '江苏', '浙江', '安徽', '福建', '江西', '山东', '河南', '湖北', '湖南', '广东', '广西', '海南', '重庆', '四川', '贵州', '云南', '西藏', '陕西', '甘肃', '青海', '宁夏', '新疆', '香港', '澳门', '台湾'])"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#pyecharts\n",
    "import pyecharts\n",
    "supported_places=pyecharts.datasets.COORDINATES.keys()\n",
    "supported_places"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#过滤分析结果\n",
    "supported_com_city_results=comment_city_results[comment_city_results.index.isin(supported_places)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#对结果进行排序\n",
    "final_city_results=supported_com_city_results.sort_values(by='comment',ascending=False)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>score</th>\n",
       "      <th>comment</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>valid_city</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>北京</th>\n",
       "      <td>3.323944</td>\n",
       "      <td>71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>上海</th>\n",
       "      <td>3.216216</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>杭州</th>\n",
       "      <td>3.200000</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>广州</th>\n",
       "      <td>3.666667</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>成都</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>武汉</th>\n",
       "      <td>2.833333</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>长沙</th>\n",
       "      <td>4.625000</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>深圳</th>\n",
       "      <td>4.285714</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>南京</th>\n",
       "      <td>3.428571</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>苏州</th>\n",
       "      <td>2.714286</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>重庆</th>\n",
       "      <td>2.571429</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>福州</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>西安</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>郑州</th>\n",
       "      <td>3.500000</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>哈尔滨</th>\n",
       "      <td>3.750000</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>宁波</th>\n",
       "      <td>4.750000</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>温州</th>\n",
       "      <td>3.333333</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>天津</th>\n",
       "      <td>3.666667</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>青岛</th>\n",
       "      <td>2.333333</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>邯郸</th>\n",
       "      <td>4.500000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>绵阳</th>\n",
       "      <td>2.500000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>无锡</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>南昌</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>玉溪</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>淄博</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>蚌埠</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>荆州</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>鄂尔多斯</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>金华</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>马鞍山</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>珠海</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>贵阳</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>桂林</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>淮南</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>宜春</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>九江</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>南充</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>南通</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>合肥</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>吉林</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>唐山</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>孝感</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>平顶山</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>济宁</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>张家口</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>徐州</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>怀化</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>扬州</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>揭阳</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>乌海</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>江门</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>鹤壁</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               score  comment\n",
       "valid_city                   \n",
       "北京          3.323944       71\n",
       "上海          3.216216       37\n",
       "杭州          3.200000       15\n",
       "广州          3.666667       15\n",
       "成都          3.000000       14\n",
       "武汉          2.833333       12\n",
       "长沙          4.625000        8\n",
       "深圳          4.285714        7\n",
       "南京          3.428571        7\n",
       "苏州          2.714286        7\n",
       "重庆          2.571429        7\n",
       "福州          3.000000        6\n",
       "西安          4.000000        6\n",
       "郑州          3.500000        6\n",
       "哈尔滨         3.750000        4\n",
       "宁波          4.750000        4\n",
       "温州          3.333333        3\n",
       "天津          3.666667        3\n",
       "青岛          2.333333        3\n",
       "邯郸          4.500000        2\n",
       "绵阳          2.500000        2\n",
       "无锡          3.000000        2\n",
       "南昌          3.000000        2\n",
       "玉溪          5.000000        2\n",
       "淄博          3.000000        2\n",
       "蚌埠          5.000000        1\n",
       "荆州          1.000000        1\n",
       "鄂尔多斯        5.000000        1\n",
       "金华          5.000000        1\n",
       "马鞍山         2.000000        1\n",
       "珠海          1.000000        1\n",
       "贵阳          5.000000        1\n",
       "桂林          5.000000        1\n",
       "淮南          5.000000        1\n",
       "宜春          5.000000        1\n",
       "九江          5.000000        1\n",
       "南充          5.000000        1\n",
       "南通          1.000000        1\n",
       "合肥          1.000000        1\n",
       "吉林          5.000000        1\n",
       "唐山          5.000000        1\n",
       "孝感          5.000000        1\n",
       "平顶山         2.000000        1\n",
       "济宁          5.000000        1\n",
       "张家口         2.000000        1\n",
       "徐州          1.000000        1\n",
       "怀化          5.000000        1\n",
       "扬州          5.000000        1\n",
       "揭阳          1.000000        1\n",
       "乌海          1.000000        1\n",
       "江门          1.000000        1\n",
       "鹤壁          1.000000        1"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "final_city_results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"10fdb3e9c67147099ff137e816515b76\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_10fdb3e9c67147099ff137e816515b76 = echarts.init(\n",
       "                    document.getElementById('10fdb3e9c67147099ff137e816515b76'), 'white', {renderer: 'canvas'});\n",
       "                var option_10fdb3e9c67147099ff137e816515b76 = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u57ce\\u5e02\\u8bc4\\u8bba\\u6570\",\n",
       "            \"data\": [\n",
       "                71,\n",
       "                37,\n",
       "                15,\n",
       "                15,\n",
       "                14,\n",
       "                12,\n",
       "                8,\n",
       "                7,\n",
       "                7,\n",
       "                7,\n",
       "                7,\n",
       "                6,\n",
       "                6,\n",
       "                6,\n",
       "                4,\n",
       "                4,\n",
       "                3,\n",
       "                3,\n",
       "                3,\n",
       "                2,\n",
       "                2,\n",
       "                2,\n",
       "                2,\n",
       "                2,\n",
       "                2,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1,\n",
       "                1\n",
       "            ],\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u57ce\\u5e02\\u8bc4\\u8bba\\u6570\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"\\u57ce\\u5e02\\u8bc4\\u8bba\\u6570\": true\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            },\n",
       "            \"data\": [\n",
       "                \"\\u5317\\u4eac\",\n",
       "                \"\\u4e0a\\u6d77\",\n",
       "                \"\\u676d\\u5dde\",\n",
       "                \"\\u5e7f\\u5dde\",\n",
       "                \"\\u6210\\u90fd\",\n",
       "                \"\\u6b66\\u6c49\",\n",
       "                \"\\u957f\\u6c99\",\n",
       "                \"\\u6df1\\u5733\",\n",
       "                \"\\u5357\\u4eac\",\n",
       "                \"\\u82cf\\u5dde\",\n",
       "                \"\\u91cd\\u5e86\",\n",
       "                \"\\u798f\\u5dde\",\n",
       "                \"\\u897f\\u5b89\",\n",
       "                \"\\u90d1\\u5dde\",\n",
       "                \"\\u54c8\\u5c14\\u6ee8\",\n",
       "                \"\\u5b81\\u6ce2\",\n",
       "                \"\\u6e29\\u5dde\",\n",
       "                \"\\u5929\\u6d25\",\n",
       "                \"\\u9752\\u5c9b\",\n",
       "                \"\\u90af\\u90f8\",\n",
       "                \"\\u7ef5\\u9633\",\n",
       "                \"\\u65e0\\u9521\",\n",
       "                \"\\u5357\\u660c\",\n",
       "                \"\\u7389\\u6eaa\",\n",
       "                \"\\u6dc4\\u535a\",\n",
       "                \"\\u868c\\u57e0\",\n",
       "                \"\\u8346\\u5dde\",\n",
       "                \"\\u9102\\u5c14\\u591a\\u65af\",\n",
       "                \"\\u91d1\\u534e\",\n",
       "                \"\\u9a6c\\u978d\\u5c71\",\n",
       "                \"\\u73e0\\u6d77\",\n",
       "                \"\\u8d35\\u9633\",\n",
       "                \"\\u6842\\u6797\",\n",
       "                \"\\u6dee\\u5357\",\n",
       "                \"\\u5b9c\\u6625\",\n",
       "                \"\\u4e5d\\u6c5f\",\n",
       "                \"\\u5357\\u5145\",\n",
       "                \"\\u5357\\u901a\",\n",
       "                \"\\u5408\\u80a5\",\n",
       "                \"\\u5409\\u6797\",\n",
       "                \"\\u5510\\u5c71\",\n",
       "                \"\\u5b5d\\u611f\",\n",
       "                \"\\u5e73\\u9876\\u5c71\",\n",
       "                \"\\u6d4e\\u5b81\",\n",
       "                \"\\u5f20\\u5bb6\\u53e3\",\n",
       "                \"\\u5f90\\u5dde\",\n",
       "                \"\\u6000\\u5316\",\n",
       "                \"\\u626c\\u5dde\",\n",
       "                \"\\u63ed\\u9633\",\n",
       "                \"\\u4e4c\\u6d77\",\n",
       "                \"\\u6c5f\\u95e8\",\n",
       "                \"\\u9e64\\u58c1\"\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_10fdb3e9c67147099ff137e816515b76.setOption(option_10fdb3e9c67147099ff137e816515b76);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x203bd0ac828>"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#使用柱状图查看结果\n",
    "bar=Bar()\n",
    "bar.add_xaxis(final_city_results.index.tolist())\n",
    "bar.add_yaxis('城市评论数',final_city_results['comment'].tolist())\n",
    "bar.render_notebook()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#使用地图查看分析结果\n",
    "from pyecharts.charts import Geo\n",
    "from pyecharts.globals import ChartType\n",
    "from pyecharts import options as opts\n",
    "\n",
    "def geo_heatmap():\n",
    "    c=(\n",
    "        Geo().add_schema(maptype=\"china\").add(\"评论地图\",list(zip(supported_com_city_results.index.to_list(),\n",
    "                                                             supported_com_city_results['comment'].to_list())),\n",
    "                                             #type_=ChartType.HEATMAP#热图\n",
    "                                             type_=ChartType.EFFECT_SCATTER,#散点图\n",
    "                                              \n",
    "                                             ).set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n",
    "        \n",
    "        .set_global_opts(\n",
    "        \n",
    "        visualmap_opts=opts.VisualMapOpts(),\n",
    "            title_opts=opts.TitleOpts(title=\"评论数\"),\n",
    "        )\n",
    "        \n",
    "    \n",
    "    )\n",
    "\n",
    "    return c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min', 'china':'https://assets.pyecharts.org/assets/maps/china'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"d6394a6b6cd44c3baf084d514b93309c\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts', 'china'], function(echarts) {\n",
       "                var chart_d6394a6b6cd44c3baf084d514b93309c = echarts.init(\n",
       "                    document.getElementById('d6394a6b6cd44c3baf084d514b93309c'), 'white', {renderer: 'canvas'});\n",
       "                var option_d6394a6b6cd44c3baf084d514b93309c = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"effectScatter\",\n",
       "            \"name\": \"\\u8bc4\\u8bba\\u5730\\u56fe\",\n",
       "            \"coordinateSystem\": \"geo\",\n",
       "            \"showEffectOn\": \"render\",\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            },\n",
       "            \"symbolSize\": 12,\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"\\u4e0a\\u6d77\",\n",
       "                    \"value\": [\n",
       "                        121.473701,\n",
       "                        31.230416,\n",
       "                        37\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e4c\\u6d77\",\n",
       "                    \"value\": [\n",
       "                        106.48,\n",
       "                        39.4,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e5d\\u6c5f\",\n",
       "                    \"value\": [\n",
       "                        115.97,\n",
       "                        29.71,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5317\\u4eac\",\n",
       "                    \"value\": [\n",
       "                        116.407526,\n",
       "                        39.90403,\n",
       "                        71\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5357\\u4eac\",\n",
       "                    \"value\": [\n",
       "                        118.78,\n",
       "                        32.04,\n",
       "                        7\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5357\\u5145\",\n",
       "                    \"value\": [\n",
       "                        106.110698,\n",
       "                        30.837793,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5357\\u660c\",\n",
       "                    \"value\": [\n",
       "                        115.89,\n",
       "                        28.68,\n",
       "                        2\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5357\\u901a\",\n",
       "                    \"value\": [\n",
       "                        121.05,\n",
       "                        32.08,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5408\\u80a5\",\n",
       "                    \"value\": [\n",
       "                        117.27,\n",
       "                        31.86,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5409\\u6797\",\n",
       "                    \"value\": [\n",
       "                        125.32599,\n",
       "                        43.896536,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u54c8\\u5c14\\u6ee8\",\n",
       "                    \"value\": [\n",
       "                        126.63,\n",
       "                        45.75,\n",
       "                        4\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5510\\u5c71\",\n",
       "                    \"value\": [\n",
       "                        118.02,\n",
       "                        39.63,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5929\\u6d25\",\n",
       "                    \"value\": [\n",
       "                        117.200983,\n",
       "                        39.084158,\n",
       "                        3\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5b5d\\u611f\",\n",
       "                    \"value\": [\n",
       "                        113.54,\n",
       "                        30.56,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5b81\\u6ce2\",\n",
       "                    \"value\": [\n",
       "                        121.56,\n",
       "                        29.86,\n",
       "                        4\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5b9c\\u6625\",\n",
       "                    \"value\": [\n",
       "                        114.23,\n",
       "                        27.47,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5e73\\u9876\\u5c71\",\n",
       "                    \"value\": [\n",
       "                        113.29,\n",
       "                        33.75,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5e7f\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        113.23,\n",
       "                        23.16,\n",
       "                        15\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f20\\u5bb6\\u53e3\",\n",
       "                    \"value\": [\n",
       "                        114.87,\n",
       "                        40.82,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f90\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        117.2,\n",
       "                        34.26,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6000\\u5316\",\n",
       "                    \"value\": [\n",
       "                        109.58,\n",
       "                        27.33,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6210\\u90fd\",\n",
       "                    \"value\": [\n",
       "                        104.06,\n",
       "                        30.67,\n",
       "                        14\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u626c\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        119.42,\n",
       "                        32.39,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u63ed\\u9633\",\n",
       "                    \"value\": [\n",
       "                        116.35,\n",
       "                        23.55,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u65e0\\u9521\",\n",
       "                    \"value\": [\n",
       "                        120.29,\n",
       "                        31.59,\n",
       "                        2\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u676d\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        120.19,\n",
       "                        30.26,\n",
       "                        15\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6842\\u6797\",\n",
       "                    \"value\": [\n",
       "                        110.28,\n",
       "                        25.29,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6b66\\u6c49\",\n",
       "                    \"value\": [\n",
       "                        114.31,\n",
       "                        30.52,\n",
       "                        12\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6c5f\\u95e8\",\n",
       "                    \"value\": [\n",
       "                        113.06,\n",
       "                        22.61,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6d4e\\u5b81\",\n",
       "                    \"value\": [\n",
       "                        116.59,\n",
       "                        35.38,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6dc4\\u535a\",\n",
       "                    \"value\": [\n",
       "                        118.05,\n",
       "                        36.78,\n",
       "                        2\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6dee\\u5357\",\n",
       "                    \"value\": [\n",
       "                        116.58,\n",
       "                        32.37,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6df1\\u5733\",\n",
       "                    \"value\": [\n",
       "                        114.07,\n",
       "                        22.62,\n",
       "                        7\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6e29\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        120.65,\n",
       "                        28.01,\n",
       "                        3\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7389\\u6eaa\",\n",
       "                    \"value\": [\n",
       "                        102.52,\n",
       "                        24.35,\n",
       "                        2\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u73e0\\u6d77\",\n",
       "                    \"value\": [\n",
       "                        113.52,\n",
       "                        22.3,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u798f\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        119.3,\n",
       "                        26.08,\n",
       "                        6\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ef5\\u9633\",\n",
       "                    \"value\": [\n",
       "                        104.73,\n",
       "                        31.48,\n",
       "                        2\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u82cf\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        120.62,\n",
       "                        31.32,\n",
       "                        7\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8346\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        112.239741,\n",
       "                        30.335165,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u868c\\u57e0\",\n",
       "                    \"value\": [\n",
       "                        117.21,\n",
       "                        32.56,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u897f\\u5b89\",\n",
       "                    \"value\": [\n",
       "                        108.95,\n",
       "                        34.27,\n",
       "                        6\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8d35\\u9633\",\n",
       "                    \"value\": [\n",
       "                        106.71,\n",
       "                        26.57,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u90af\\u90f8\",\n",
       "                    \"value\": [\n",
       "                        114.47,\n",
       "                        36.6,\n",
       "                        2\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u90d1\\u5dde\",\n",
       "                    \"value\": [\n",
       "                        113.65,\n",
       "                        34.76,\n",
       "                        6\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9102\\u5c14\\u591a\\u65af\",\n",
       "                    \"value\": [\n",
       "                        109.781327,\n",
       "                        39.608266,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u91cd\\u5e86\",\n",
       "                    \"value\": [\n",
       "                        106.551556,\n",
       "                        29.563009,\n",
       "                        7\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u91d1\\u534e\",\n",
       "                    \"value\": [\n",
       "                        119.64,\n",
       "                        29.12,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u957f\\u6c99\",\n",
       "                    \"value\": [\n",
       "                        113,\n",
       "                        28.21,\n",
       "                        8\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9752\\u5c9b\",\n",
       "                    \"value\": [\n",
       "                        120.33,\n",
       "                        36.07,\n",
       "                        3\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9a6c\\u978d\\u5c71\",\n",
       "                    \"value\": [\n",
       "                        118.48,\n",
       "                        31.56,\n",
       "                        1\n",
       "                    ]\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9e64\\u58c1\",\n",
       "                    \"value\": [\n",
       "                        114.11,\n",
       "                        35.54,\n",
       "                        1\n",
       "                    ]\n",
       "                }\n",
       "            ],\n",
       "            \"label\": {\n",
       "                \"show\": false,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u8bc4\\u8bba\\u5730\\u56fe\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"\\u8bc4\\u8bba\\u5730\\u56fe\": true\n",
       "            },\n",
       "            \"show\": true,\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"itemWidth\": 25,\n",
       "            \"itemHeight\": 14\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": function (params) {        return params.name + ' : ' + params.value[2];    },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u8bc4\\u8bba\\u6570\",\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10\n",
       "        }\n",
       "    ],\n",
       "    \"visualMap\": {\n",
       "        \"show\": true,\n",
       "        \"type\": \"continuous\",\n",
       "        \"min\": 0,\n",
       "        \"max\": 100,\n",
       "        \"inRange\": {\n",
       "            \"color\": [\n",
       "                \"#50a3ba\",\n",
       "                \"#eac763\",\n",
       "                \"#d94e5d\"\n",
       "            ]\n",
       "        },\n",
       "        \"calculable\": true,\n",
       "        \"inverse\": false,\n",
       "        \"splitNumber\": 5,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"showLabel\": true,\n",
       "        \"itemWidth\": 20,\n",
       "        \"itemHeight\": 140,\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"geo\": {\n",
       "        \"map\": \"china\",\n",
       "        \"roam\": true,\n",
       "        \"emphasis\": {}\n",
       "    }\n",
       "};\n",
       "                chart_d6394a6b6cd44c3baf084d514b93309c.setOption(option_d6394a6b6cd44c3baf084d514b93309c);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x203bd0ac748>"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "geo_heatmap().render_notebook()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#评论词云分析\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import jieba"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#中文分词例子\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'画面 精良 ， 剧情 紧凑 ， 千玺 弟弟 第一次 挑大梁 的 戏 的确 也 可圈可点 ， 戏中 各个 老戏骨 更是 稳稳 的 演技 ， 长安 十二 时辰 ， 值得 五星 ！ 姚汝能 ， 给 我 刚 起来 吧 ， 别 怂 了 ！ 崔器 都 死 了'"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sen=\"画面精良，剧情紧凑，千玺弟弟第一次挑大梁的戏的确也可圈可点，戏中各个老戏骨更是稳稳的演技，长安十二时辰，值得五星！姚汝能，给我刚起来吧，别怂了！崔器都死了\"\n",
    "' '.join(jieba.cut(sen))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#对每条评论进行分析\n",
    "data_df['words']=data_df['comment'].map(lambda c:' '.join(jieba.cut(c)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#合并所有的分词结果\n",
    "all_words=data_df['words'].str.cat()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAACcCAYAAADcS3gSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOy9dXhUx/v+/9pkk417gKDBCe5uRYNb\n8eIubXFJ8eIUKwWKFXd3C67BgwULxIkQ92ST8/1jyW4260lK35/fj/u69iJnzsycOcue+8w88zz3\nIxIEge/4ju/4ju/4NjD6rwfwHd/xHd/x/yd8J93v+I7v+I5viO+k+x3f8R3f8Q3xnXS/4zu+4zu+\nIb6T7nd8x3d8xzfEd9L9ju/4ju/4htBFukJ+f3wTXuZ7n/9XPimx82T/xswQpCmX/vPx/C9/li85\nrVIWFZkgtGq2WDh66EGe+o6LSxZaNVssLP79pLzs1InH//o9padKNZ47tPqc4G4zRP5JTkz9z/8P\n8vL5EBIp/LzhhOCx/bxQY+zqPPWVvf349cd11r/67IOQkJwqxCQkC4sPXM3X+0rJ0Px/mOOjEQbN\ndNMT1ulV79zn3VwNP0KmkCkvuxt5nvcJ3njH3Dbkkv+fgsjIAUFIAiNbMqTv/+vh/M+ie6fVXLrw\nAr9PEUrlfXv+xZbtw+nRq67GtqkZcYSnvOba50Ua69jYmLNybX+uer6Sl104502rZou1jmtYlSkA\n7Jx/WJ/bUEGvkj8zrcMy+fHlvbfp6DQCd5sh/DNXuU9zS0murvFv4dHl50rHh1adIUOaQXJCitr6\nm8/dx8nGApEIBrSsJS/fdPa+3tdsM3MLl5+84+mGiQA0mLCOv8Z1A2DbhQca27WoXoZZOy5gZ2XO\n5B5N9b6ePpj76GKe+xAbUjkz3QchM4qMlMtIUz0xs9+iUic9M43GTh1IzUwmJOUTf3+YxcIq+2no\n2I4HUZ50LzoaAQERInmb9TtvMG5QM73G0PTHldw8MlnvMdcfuIr7uybpXT+vePI6kJoViwGQmSlg\nZKS4TyEzEpHIApFIgrG49Dcbk74QgJDEGPwTowlOjCUoMYaQpFh8YsIIToolIT1VpY2JkTEWYlNM\njYyJSEnQ2Pf7nrP0GoPnpZfY2lmw5+A4LCxMAbh+9TWNm1bg4tUZWtse8htML9cdRMS/w8rEhWdR\n+6nu0Fdt3WrVSygdb9g8lO6dVmvtPyYiFoD9y04yaG5Pve4nO+q2rcqNow8YUHEy272Xs2HqXqRp\nUgBKVi5G93FtaNWvESKRSEdP+kMQBIP7S4pPxtc7gCqNywOQmZGJ1wVvareuKu8z+EMYjy6/wMjY\niDptqqr0cfvlJzz6tiAqPpmBrRSke+vlR0Z1qK/XOEoXdqR1zXIMW3WILg0rUczJjj+O3MCtWAGG\nuWt+8Xo+fY9PYDgvPn2mSkkXQ25dJ7zCA/Lch0hHRJoAIAjxiERWJH/pgrnTKTJSPDGWNAWRqVLl\ntMwU4tKjcJS4EJMWgb1pAcVgIy9ha+JIBZtaSm0+BnwhOjaJYi72RMcmUb50QbUDGTZ1Nz80KIdb\nWRdqVSmu1839vuUivw1vw89Lj7J+5o96tdGF5NR0fHxDCQqL4e2nMKYObaV0/udFh6leoSg/1C3L\n6p3XWDdL9eFMjpmKud2KfBmPLgjAm5gwvKOC8Y4KwTsymPdxETrb5TfMxSY87zZd4/lWzRbTu299\nRoxuoXIuPi6Zbp1W43nDQ16WmpLOuNE7KFjQhkXLeivVvxu+jkwhg0r23bA3LZGzO0W92+94/OgT\nP09oq9c9dC84gilbRrFi+N8MWdCbuC/xhHwMI/h9KClJKfT36E7THvW09uFuMwSA0tVKsP7WPL2u\nqw+GVZ5EyIdQBsz5kdf33rPwtObvWheyxjhz+xia9ajLxV03eX3/PRM3DJPXSYpPZtfvxxi9vL/G\nfkb/eZS/f+mR63HM232JyT8248SdlwxoVQt3jy1cWDyCWuPW8Hj9BLVtpBmZiI2N2HLOi6LOtrSr\nUyHX11eHUvsXc6fLeFwsbHRV1fim02umKxJZA2DudAoAY7NWauuZGpnhJCkMgK2Jk9K5eo5t1LZJ\nSk6jUjkXzCQm/Ln9GgundlZbb9uKAfoMVY6dpx9QqbQLu04/4OWHEIPaZkenMX/zJSaRNo3cqFKu\nMCWLOFKpTCEqlXHBrVQhMjIyMTaWWWnGLDhIw+ol6dKiKjZWZkgkYhr0Xcm9/cozc2OTSrkejzqE\nJcdzzO85F4J88IkJ1W5Q+o+QLE2n/cVNnGs7Su35mrVKEhoaq1Q2atg2Jkx2x61iEXmZz+sQZnsc\nJiY6kaLFHChYyA4AgUw+xl+ntHULjERi3Ow6Y2+q/eXcsHE55vx2hJPHHyM2MeaCpypRed94TeVG\n5TEyNmLixhE07FybtTfm41zMEXMrM3m9YVWm6CRcgN2vVzKg4mR8vf3Vng8PjKRAMUf5cciHUG6f\neMDjS88pWr4wJSoWxcLajBDfMM5vu8r+gI0AbHu5St5mfH0Pwvwi2Pbbfjz2/qJzTJqQmpwGgH0B\nGyZuGMYHb3/KVJO9xLLuPS4qARsHK5W2t15+wkRszJIDVzEzFVOnXDEaVy7JxL9PsXq0+mc8J1LS\npVibS6heujB7rz6hf4uarDxyQyPhAoiNjTh4w5t2dcpz9sEbAI7deUH3RlUMundtuBbiS78yNXLd\n3iDzgiEwEulnLl677Sqx8cnM+qU97X/QTEYbd9/kU8AXlv/WXWefe889plQRR5rULI2n1ztubPuF\n5NR0zCUmeo8/C6c3jpb/veIfT24/9mXNTNnbu2wJZwAu3PZh90kv9q4YzJgFB/ELjmL2GHek0kwV\nwgUwtRxs8DiyEJuWzGJvT04HvCQ9MyPX/eSE2MgIe1MLolKTyMhmi89PaJtht3GvwoljjwD4bcYh\nvO59oHadkkqEGxoay6eP4azbMAiXwnZK7UUYkSSNAiA9MxlzY+Xz2eHv94WF80/w6WM4xYo7sn23\n+hfBzSP3eXbjNU+vveLgilNILExxKmKPW72ybJy8ixFL+jGmngdbni5ny7Plen0HzkUdVMrePPrI\n5pn7ee31AQBTMxNOhW8GwLGwPb2mdKbXFFWiGqjBxBETHkdBV+c8ES5Am58aA1DXvTqAnHABvgRH\nq53lrjp2k+ZVS1PZtRCXHr/jlX8osYkpTOwus632blZN7+svHdoegGWHrjF/YFtsLCScvPdKY/3Y\nxBReB4RRs2wRdl95wsw+LThw/Rmbz93Xm3RXPr/B5KoyU+ecRxfpWaoqVRyUTRR5IVz4F0lXX6Sm\nSRnUswEL1pzF42d3jfWa1ivLmAH6GcX7t1eYMCSmYhoPWUu6NAOv3bm37SanpHP57lvWz+7FU58g\nargVlZ9zb+yGe2M3ACqXceHVh88AVK9QlBFz9rFlQT+DrxeTloxn8Fsuh7zlxmdfg4hQYizGza4g\nzQqVoaJdIdzsCuqzHNIL8empnA18xYWgN9wJ+2hw+3F3j7C+oaqpx9bOgqioBH7suhb39lVZtLSX\nSp30NCntO1anVbPFSqYGgGRpNJ+TniEWSWhSUP3/8+Cf/mbHntE8feLHlu3DFfcUn4K1tZlK/aY/\n1qfpjzL744HlJzkRsY2hlSfzz8uVfHjqx7snH1l7Yz4ARsaGe19eP+LF0qF/K5V1HNGCofMU34/E\nwvANNZFR3mzCYhNjpOnaX+jqXh4Ak76S66i1R9n0aw8CI2IoZG8tP1/fTbO5RxOKOttRooA9IZFx\nSMSaKWva1jNs+vVHZu+8yI9NqhCXlIJIJOL0gqF6Xcc/Ppr1r+4wuWoz9rx/zJ73j1lQW2F6uhfm\nZ/DY1SHfSTchPgUrNT9gTbCzsaBDi8p0aFEZz1tvNNarVE69Qfzw2Sf07FBT7bm/j9zhwh0frmwa\nx4GLT/QeU058johj96kH/D23N2KxMcVd7GnQdyWHVw+jaCHFjCouIYV+HWsza+0Znr8Nxs7GXCfh\nJqSn4hnyjsvBb7n2+b3Bs9furtWYV8Mdc7Hhs/jcwNpEQp9SNelTSvk7T5am0/biRj4nxWltfylY\n/f+xRCKmaFFHlq/qy9Urrzh/1pt2HWSzIkEAExNjihVXLLuDAqMoWkzx4JuL7WlTZCEAKRmx3Apb\nRWjyCwaUPqbUBqBr99oArFtzkUcPPpKYlMaRE79qHfeFpD0A/LxO9gAvPjMDiYWptiZaYW4pofmP\n9WjYoQYfngdQsV6ZXPeVExM3jdRZJz46EWt7S611rh68h/+bYILeh/IlOJrwwC+Uqe7K70cm6uzf\nXGLCNW9ffqimvGEcFpNAt3k7uLtmvM4+spCQnIrY2IjiBew0WkpjE1OoUaYIyw5d4/dBbWk1YzPL\nh3egd7NqdFuwk+NzBum8Tglre/nfAQkxvOw5Ven8lPtn6FlK/5m6JuRbcIS/bzjuVWcxacAmg9rZ\nWJuxeusVDp99QkRUvMZ6QZ9jlI5T06Q077mKtduuamwTFZtE24ZutBmzgYbVSqqvE1qVyJCiRIYU\nJTX5mMr5u88+4WRvybRhrXjrF06RArZITMXc2z+ZXxYru/ncfPQBexsLLMxMqVq+CNUrFOWdXzjj\nfj+k0m/Zwwspe3ghNU6sYOqDk1wKfqMX4RqJRGxo2JP3PWfxvucsltXplO+Eu2TGEYPbmItNuNnh\nF973nMWKul0wMnDH/PpVHzp0li1jk5PSWLn8LHFxyQCIRHDeczob13sC4HnDQ4lwc8LM2JbWhecr\nEW52tG+9nFbNFnPx/HPG/tya4iUcSdcws1s5cjPnt1+jT4lxxH6JIyLwC0CeCBfAqYhs/KbmpvlK\nuAA1W+peSkeFxtDefhjZN9JPbLzMkKrT5LPcFSO38Pr+B2ydrHn35BPR4XE8vPScDxrs0VlIl2aw\nZnRnHr4LBKD9rG3yc/aWZgYRLkCn+hW59fITAIUdbdXWufXyI6M7NMBCYsqlx+9YOrQ93h9leznH\n5wwiIFyZPyodWkGp/YsZcG0/m33u8yJKtjqVGMvmoR41WmKR47n6nBTHsnodDBq7WgiCoO2jN5IS\nUoS2VX4Tutabr1TetspvwtiefxnSlVakSzP0G09ymtryzxGxSsfS9HfCl+AiSh9NOHn1udZrnrn+\nUhAEQegybpMwYPourXXDk+OFMod+1/pZ6u0pJEnV38e/gaSEFGH1/JPyv/MLf726Kb+nuDTVfi9f\nfCF89A2TH799EyLExiYJ06fsF7zuf5CXt2y6SAgPi1Vpry+GDdos/zs2NkmYPnmf0LHtCiHyS7zQ\nsuki+bnU1HSlY0EQhNWjtwhH1pwVBEEQ1ozdKsRHJSidz8zM1Hscba0HC/P7rRMEQRC+BEcJ8/qs\nFdpaD5Z/OjoNN/jecoOs622Yskdp/G2tB6vU3bnwmNDWerCwe/EJvfsPDI/O8xhrjl2tdJyRkSn0\nXKj92VKHqPgkITQ6Xn485tZRQRAEodQ+2f/zg/AAQRAEwTf2i7DF575Qct8ioeS+RULLM38L14I/\nCJPvnRL84qIMuaRGXs030hUEGcG2rfKbStlvo3cY2lWe8Sk4UqUsKi5JqPvTSmHf+UdK5fFR45RI\nNy31/jcZ4/XPH1SIttaJP4TUDOk3ub4m/DZut3B45+3/dAzZSe/l80B5mQHcpoSkpFRhzcrzwsSf\ndwsvXwQKD718BUEQhM7t/hAEQRBevwoSVv9xThAEQVgw95iwcP5xpfbLh24U2kj6yY+z/20osoiu\no9NwJbKd2GqhEPjuc677NRTt7IYKba0HCwv6r5OX+Tz4oEK6yYkpwtxea77ZuPILO7bfFARBEJYs\nPqVyLiolUXgUHij4xn4Rcv6k6hxbI1wIeKNUVv7AUkMvr5FX89WmKzISIWSqOiyFBkfn52X0gmth\nB+499+P+Cz9SvzqguzjZsGfRAMoWd1aqayJpQmryCflxZkYQoNv9J69oVqg0W5v0Zfit/ZgYGbO3\n+QBqOBZVWzc5LR1zU8Vy5857f96FfWFI41pq62vD39e8GP2D5vtr1MKNdt0N77fEVoXv8adhUww2\nMeTEsEGbCQ2NZfbcbvKy3Ha5b89dGjUpz6+T3OnYdgVnLsrsdYmJsoAPt4pFmDB+NxMmt+PGNR+V\njbqp20YzdZvCk6XX5I4q7l2GwMLWnNMRW4iLTMDGUdXl6lugeHkX/F4HY2WnsO2e2nSFYjn2T8ws\nJMw7qN3m/b+GsLBYBg1uQnR0IlOmdiA6OhH7bDZse4kFPT3XqLT72NeDuLQU2hYrLy9b9uwq1zqN\nybex5SvpdvupIcd23VEq69irLmcOaQ7Z+zfRoKorDaq66qwnNlUmGBHfZlMKZMSrLVorTZrBqJ3H\neeIXwr3ZY7AwNcHLN5BGZUswYvsxg0n3zLM3NC1fkpikFLZcf8DU9qoeIcVKOvP4ni+nD3rR/sc6\n1G1cVq++RSiCzkdcPs62Nrrd+7Rh207dG0L6Yv+euwwb0RyAlJR0WjVbjJ29pVJgxcGjP9Oq2WJW\nrNbtbTJskfpIN31hbS8jWn0I991TP64dvIfn/jsc8P0TY3H+bMVEh8s2Pd3qKDa7rh/1YvJGRRCE\n900fqjV1y/U1Vo3dRsHiTvSb1jnPXhXZseDBFf7xkbkY+g1S9a9OTk7n9/knKFe+EL371Fci3Cx8\n6DNT7cRgevUWtD23hfexEUyo0pStbx4wvbpq0E5uka+k+9PoFiqkO2pae62kmxCXTJB/JL4+IcRG\nJ+JSzAGXog5UqFosP4emFZkZoUrHRmJXrfVTkw6SnLAJM8tBmFnq3hXNC0zFxpR0cqB33apYfJ3p\nrr50mxZuhoURh8UmsOn6Aw54eVPexZkWbqWo5VpEbd3KNWRBBbUaGHaN890H435sBwBPwz8b1FYd\n7tx6x+/zjmHvYMX+w4rNF693AXyOjqdCEWcyMgV2XHnEiiGaNziCAqMQZyOqrFns55AYXArb0bvH\nn/Tt35BSpQtQsKAtzs75416nDe0Gq4a9C4KA1wVvrh++z/UjXmrbdXAYxoW47fkyhtgvso1r90GK\nF29mRiYtejeQH0/vKPM/Phu1jQ/eftw/9wzf5wF88PYnKlR5cyoL2cdXumpxSlcroZVwN3t60aRC\nSTZ7ehEZn8Sun3trrCsAJXcu03g+C66uTsye25WDB+4TERGPs7O1Sh1NK7Eh5etwwPcZH/t6sNz7\nGgXN83clkifS/RwURaEi9vLYbgsrmU9hepqU3s2XkJSgiNV3r6p5NmcqEeNYwIbPX116AC48X5iX\noRmEnOIzYpOqOc77khg7i/TUW0rlibG/kZZ8Ghsnw3f7DUGHauVJlUrlx3tH9SYxNY01l+5oaaVA\nrw376FKjIp9j4ni9WLe7T27h5qAw2xSwyPsPtVGTcly4otBbEJsYA1CvnHKkmTbCBZl/7tq/BgLg\nde8D9RrIvAXWr7vEQ6+PnLk4lWWLT9O1e232Hhqn1g84v2FuKcH3eQAnNlzCc/9dJS8CXXh46bla\nvQND4VKyAF3HtpYff/lqBhSJRAiCwIvbb+XnOjgMU2mvD0pXLU6R0gU5veUKnUa0VFtnUPNa7Lv1\njNWDO7H4mGZvJNCPcJOSUrH46t9sairm0aOPtGtnmKvX+1hZIE/vUtWp6uDCjc8faeZSyqA+NCFP\npDuk/SrsHCw5cH2mvMyxgA0n991n/roBlK9cFFOJmO4Nf+fY3dk6+2tXfTZCpkAHLSpS/wak6a9V\nyjIzgkiMnUVaiqfWtulp+qsm5QZJaen8uvc01Yq50LCMzLF8281HjGxeF2M9l2uHxvYjTZohfzlW\n9FjN2UmDKelkr6Nl7lHR0Vl3JT2QkZHJ3l138Pf7gptbYYPbt22xFCsrMypVKUq3TqsZOrwZiYmp\nWFpKWLikFwkJKZiYGDNrbld5m607RtCz61oO6/DdNRTS9AyGVpcthbP0DbLQeWRL/HyCmb51FI4u\n6qPpYr/E8+Taq3whXIDt3goCu3roHitGblEaW+1WCtezC3HbWbf7Bm6lClKrcnHsbS0A+OwXwb5l\np7i8V716YOWG5WlrNYiLCTs1jkMiFrPx4n0K2lozqLnhewk5YWEhYcni08z06ITvh3Cq19BPqyU7\njraWrWBLWNtTwtqeBY8v/2+Q7qK/B/Pb6B1KZb/M7sKK345w5PZv8rJpi3uSnJiqU66uWdsqXD//\nnJ9n6RebnV9IS1GWa4sMUb+Z9a3xNvQLY3aeYEyL+vRvUF1eXszBlppz12Fjrn8QSr0FG3i64GcA\neterisfhi+wf00djfZ+oCKWZq6EoayfbYErPzMA3JooKBvZla2dBh7YrGDCoMb361sfMzIT9e+4a\nPA5BEDhxVhahFh+XTOUqRbG0lNC53R9s2TGCggVlfp9jRvzDxi2ywAfXks6y8OCtNxgyvBm/zz3O\n7PndNF5DE0L9Izj1tydntl0jLSVdXl62uiu9JnWgSdfa8rJxTebh6+1PSqJ6qUQAWydrfuipn0KX\nOgiZAp9eBfH89htObLhMqL9qWPYvawfRfkhz+XH2l4NvwBcKOFjJCRfAxdWZyRuHKdmBs2Oq+xKt\nhBuXnIKNuRnrh3elTpmiJKSksumyF3+dv8uLVblblc2YdhBjYyNu3XrLlGntc9VHDSdl09ucWq01\n1DQcepNucmIq3RsuVFoGFf4aITSu13oWbhiEvZMV9ZqVJ+GrU3sW6jevwOY/zjNySjut13AsYMN5\n798NGX+ekZK4HSEzSndFFYgwsxyAuZXu2VBQ8mecJQ5IjCTs8NvPYFf9NmHKF3Li6vThTD90gYZl\no7n04h1xKam0dCvNkfH9mbDvjF79NF68iaM/K+LkY5JSeBUSRo056+REnB1Vd68jNjUFR3MLnvQf\np9c1AKJSFP/v76Ij+eXaGU76+gDwcuAvWJvqF9KaliblwJGfMflqTsiCNh1dTbh0TbEKy24yOHV+\nCuNGbeftG4Xt+aNvOKVKy5TxVv35E62aLWb/3rtkZgrMRj/S3Tr7EEfWnlcp7za2DSMW9VYbLnxh\n5025AM7Ohcfx2CHbKX8d54PESIKLeSEsjBVE9yzGG2ORMS9iX9GvuHr7Z0xEHJ9eBvHi7lv2LTul\ntk715hWZsW0Uds427F9+mp0LjykRbhZMzWWBIM4OVoRHxiMI+nmRXD14jxUXZmqtc/etPw8/BHHL\n5xOXZg9ni+cDJnZsQskC6oNfClpYEZakkBC1NVWdeCxdrvhOfHxC+GP5WUQiEVv/Ga5S11CkpKZj\nlgsNl+zQm3S7NVAlw5CASAB833ymb4ulgGbx5eN77qqQ7oObb6lRvzQmprJhjJisWXshPyFkxpIQ\nM5G0lEt6txGJzDCzGo251VhEIgvdDYAkaRICYGtijV9iIOWty1DZ1o3zoVdAEGjnol6tLTsefAzi\nrPcbfuvUnFFf3bzG7TpJvwbVOfXrQJ3toxKTiUpIopSz7Edc0UOmGXvbYxQOVqr3UXb7KtIyZBFJ\nkclJet1nFmyykeqxD8rCJBkG2Czbt16u1qYqEolo1WwxzZq75WrmmRPrN8lmcX6fIrC3t8TWTvn7\nuHzdg9bNtQubpySlsm3OYU5vvqJyru+0TgyaJfPgCPYNU0u4I+v8RsBbWeRUgWKOcsIF8E8MoJB5\nISJiIihmUYwi5oW5EXELEyMx8ekJFDNX3QhNT5XSyXmExvFWalCWsSt+onRV5SX3zoXHGL9K/e9p\n5CLZiqhfx9qYmhpzwtMbGyszWjYor7Z+FrJvyGmC17tAbCwktK4q85CJSUxh361nSnsY2dG+RHm2\n+zyWH7s5FFBbT37erTDbtmv+PrRh3uozzJvYUanMTGLCGc8XFC5kS83KhpstgLwHR5zYc1clIML3\nzWdhypCtSmUdaswRUr5GiYUFR8sDKV4+8TPU6dhgJMX/pRJ1pu0TGVJBSE2+lOfrbv+0X3ga/VwI\nSAwSroXdFlIyUgVBEIStH/fo1X7fvWeCNEPhun3m2Ruh94Z9giAIwpvPETrbexy+KCw5c11wm7lK\nqTzncU4U37JcKL5luTDt5gW9xikIghCflipvl/Vx3bpCSEw3LKIuZySYOrRtabCjep7w7q36gIUr\nB+8qBTd0dRmtsQ91UV7uNkOU2ueMArwZcVt4HPVESJYqyp9FewsJ6YlCbFqsEJL8WbgRfkul38VD\nNgp9Sv8irB7/j5AYl6Tz/rICItpaDxb+mXdYXr5q3D9qx60vImOW5LqtJnxJThRK7Fgq/2x4cS/f\nryEIgpCWLhX2nXggCIIgDJygCO464/lcePsxTFjwNTpRCzTyap4d/jr0li357t9QCJmUKl+IF48+\nKdWbvqwXc8fvBiAkSLac7zfqByrVUKgObf90iONBF1SuEZIcxhKf9TyIeqb3uJLiFss1FZLilujd\nztxqFA4uPpia5d2G8yrWB2eJE55hN7EQmyMxMuVw4El8Ez6x+t3fOtv3rV9NvllW0WM1pQs4cGCM\nzDQx+cBZNl9/QEBkDM8CPtN+1Q7uflDExKdKpaRnZjCjQzPMTBQLmqwJZ7c/d1PRYzUnn6puImZh\nfHXd9sOTvj6U2LqCSjvXKpX3KleFT8OmqMSv68KeA2N11lGne/tv4NgNWYqasuUKqT3folcDbJ1k\nrkg/rx7I8ZCNauvdPKbqMtnOdiglKhZh29Ol7H0rW310cxnNk2uKFUITp0bUtK+BmbFiBVHNriqW\nYgtsTGxwMStEU+fGKn3P/Gc0+z+sZcK6IVhYm+u8zwp1SnMhbjsT1g3h4MqzuNsMYWaXFVzcdVNn\nW3WIiltKYGhjrCy66q5sIBzNlFcjbvbaZ7q5hSAIXP4qwLVztcIt9EtUIpHRCTg7qrqg6Ys8++mK\nxTK72z9rLlG/mUKlvUTpAvi9D8O1rCwTRJPWlVg0eT8AZuamHLrpgU2O5VwT57rYmSj7SJ4O8aSh\nUy3qO9akkk05rWNJT71BQvQEMjP1zYwgxlhclAypn7zEzGq05uoGoppdZYqYuzDItTd/vF1PXYea\nuJgXomexLgb3ldPV68wE2Q/ByzcQYyMjNg/pRlF72aaQT0g4s49d5sh4mR23XimZz/P++950r11J\nqS9phmbJyGLW6sVFsrDp+UcplzIAACAASURBVAMWP7ghP55YsxGrn8jc2DqXVvwWLvi9w91V+/9d\nFgpp2Ln/1vDxD8PKXLcN+uDHPwkPiqRAUc2RaUfXXZSnvsnC+dh/lI5b9W2E5/47eHT5g5Z9GjJ1\nc+6WxHmB+6CmuA9qytZZBznyp+rkR1842MzA2uJHIqKnUdhZvehQfqGMbe4iAnXB1ETMP3+oJk6I\njEmkQc1SWFlIGD/7IH/9rtmnWBP0SteTGwT5fWHSwM0cuqmwzQ1ut5L5fw2gRGndbyevyKfUc6zB\n/oBTdCzckrdxvtS0r6xWHD0txZP4qMEGjU9sUgVb5/MkxS0mOWGDvNyxcJBB/WjDieBzlLEqhZPE\ngYOBx7EzsaVv8R6YGn27iDdDEZGcSO29su/Df/hUHbWV4RsTRYsjMkWpj8Om8Cw8hO6n9wEwo05T\nxlT790Or8xPukzbRvoEb91/7s2+uYZlLlPqxGcKSk1Op8UNFrfXa2Q2Vh9GPWNSbHlr0pf9NCJkC\n7eyUNWhHLulL93Hqs7/kRGBoI4oUOE9AaG2KFLiMidhwDV1tcM3mq/tp0HTNeXH+W+QtXU9uUNTV\nibgY5Y2YRZsGU6S45jfT7S8P8U8MoqiFC42dZGaLvsU7E5UWQ20Hzb6JpmatcCwcSNRnNwRBNTmi\nxLw7FjYzMTJW1eRNTlBIUZpImui8L0PQtYjCXaWuQ02uht/ibfx7qthqf/j+S7yLlkkXFrFSrDhu\nB/vTuIjuBycwXpFup9S2P5TOfYz99vobuUFAWDQem86ybUYfbCzN+KVnU/KWf0GGCnU1R/clxCRi\nbmXO2cittLeXuV5t+e0gW2cf4ljQBqW0QNrwz6qLDJ2kX743bejgKNvlbzuwqdzEsHnmfnbMPyLP\naKEZmZiIS2FkZIOxkTNGRpqj+2LTUqi2fy0SYzFvf9I/2aybQwF8osIBLcwGBMTH8CQihNCkeD7E\nRhKWlEBYUjyhSfEYiUTYmJphYyrB2kSCjakZTuaW2JhKcDKzoJSNA6VtHSlunf8rr381c4SVtRmJ\nCSlYfv3RaCNcgMZOdWjsVEel3MFUnxsX4eDyhgypHwkxk7C0mYPYtLruZih0VK3s/tBSL28ISAqm\nkFlB3sX7aiTdZ9F+zPU+zP4mv2JhnDe91tzibZSMdAdWVKQk6X9epgd8t88oJTLOiTVPVSPk6rsU\n42AHzf7A/2soXtCePXN+kv+dV2TNXNV59USGRDOq/mycCtvx931ZBOaWR4sZUdtD3rZb4TGUrlaC\nddfnaM1OEf45BjMLU1498adUBRfMc6H3K2QKdHIeQWZGJmuuzKJCndJM/GsIHZ1GIE2TkpaSztT2\nS1lxTn1W5szMONIz/LG1Hk269CPFCmmOmEySplNtv2wfIDVDvaeCJrgXLycn3SRpusq+QWRKErUO\nrtPZT0yqZp/onKhXsBhLG7pT0kazjrO+yNNGWnqa5i8rMzOTI3dmyQn3W8FY7Iqt0zG9CFea9lDp\n2MhYvRZBTghCosHjSpQm0a1IB6rbVeF6+B0y1aTfcZRYE5IcTbNL80iSqqY7/xZ4FyMj3VK2qj+u\nhgc2kZCeplIeEB9D+R2rlfQWGhcpgf/wqXoR7rOIz7gf20GJrSuovOvPPIxeGduf5j5bCMD4Hqqb\nVIbi9qnHKmVPr72mne1Q+leYROmqxeWEC1CsnAv73yurX/l6+9PefhidnEdoTGhZwMUOKxtzHt95\nz7Wz3gaP8+OLQNrZDcWtXhkuxG2nQjYRnDNftsjzo724/RaPLuonJ0ZGNkhMqmAuaYSJWHv0VsW9\nq7Se14a2xRX7A95fVDU+mh/XNRs3HF5hgfxwfAuuO5cxyPOw7gZakOuZ7uxxu3h46x3mlhKO31MO\n8V089SA3L74AYMyMjnTpl/somn8TCTGKXXAL6ykq5wUhjfioAaSnan5ji00qY+use9PhacxzhpTs\ni5FIRGkrV2a9XMzCysq+qMUsFCsBC7HhubHyA2+iZJuQrYqrXw6Ls9nU730OoM/Zg2rr7W2nmuMs\nOw69e8Hcu1dIkqYrlcenpXI98BPNiyln+nj/PIBXDz7yySeE0MBIpOkZrDyuPitstQ3r8R47jj9u\n32ZIDfWpnPSBq0veZzU3jys8Fz69DGRiq0WkJMleqGP/+InOI1X1COwL2lK9eUWeXVf2LElPlTKu\nyTwAPHaMoWl35WARsdgIU4kYOwdLpSzV+sD7lo9WIZ2/bs1jSLXpfP4UruRhkVtYmUhISM/dxKKC\nvSK68XF4MA0KKfvLxqcp+m1RtDRdSlakgUtxHM0sMdZTG/RBWBBbXj3gcuB7lXM3gj/iunOZWnUz\nfZBr0i1ZthAPb70jOTGVLSsvKAU2/DyrM3HRiTx78JGNS89gKhHTrkdtLb0ZBvfrc7nQfD4pGWmY\n5WEZniF9J//b3HoCgpBKcsJfpCSsRxBUZ3TqIE1/iTTtmcaZdXDyZ66E3WRdDVnwiHfMK5o5N6SI\nufqcb98KielpWJqofnc+X0lXnQLTj2UrYyYWc9LXh1+uKUfDrWjqzu1gf3kEmjp4hQbR68x+nWMb\ndPGIfBNv5/KzDJzanrJVi1O2qn7O6N5jx7Ht8WOtSQy/FbJEY3JqLex9u1qjxgLA0lNTObPlKn9N\n3q32/OLBG3n31I/hvytebu3zoFnSbazuTbLt3stwtxmSLxKNV7oOp97h9VrrDLh8iFshMtfTm91H\nqbWvBiSoKp0VsrAmNCmeJ71/xsFMv0CmnKhbsCh1C8rkAL4kJ1L70F9K56s6qncj1Ae5/lUOndCG\noRPa4F51Fkd33qbnkCbYOcg0K61tzVm6dShSaQY9Gi5k7fwTctJ9/SyASQM1T/9/Xz+QOk20uxdV\nspW5QLW6NovbrfRLfa0L+ugtiE1rIzapTEriDqXy2C8dNXo9OEkcGeiqcCtp5tyQ6c8XsLSqbgGg\nmLREOl9fwbAyPzColKoUYF5QZdeffBymOrtP0RAJVNjSmpXNZBGFXUq74Wpjj19cNJ1KVZAT9AU/\n2awge5TQrtdPWXD/mtr8b2XtHClr74SxSITR14+xyAh7M4Vv6aBpunNSCcDY06dZ37EjZdas5kjv\nPhx4+YIHo3S7/314H8aoUQr3LbHYmMZNytGhQ3Vq1nTV2V4b/F4FEROhmqhTX2nGjiNa0PqnxnQp\nqEgRbyIRs+LcDKXl/7dEfslKFsyhQhecECffL/AKC6T3hX1K55se20RVx0Kc6qgspZqUrrxSAihm\nZUtoUnyuCRcUHhJ+g6bjZG6J36DplNq1nExBwMTIWGUchiDPU4ELzxfSs8ki+jRfoiLHKBYbc/LB\nXNYvPk27arM57/07tg6WnHo4l0e333Pj4gvuXHktT4T369yuOgkXYFSZdqRkpPFDgSo8ifYlMjWO\ngKQI/BLDqWhTjL4lDCMouwLXMBaXVSFekZEdNo6HEJsob3yZSJoQH6Us8JGeegMTiep1JUaqs8kh\nJfsi0rDv2qdEQwKTImnluZDYdJn3x19vL1LfqSzlbfRT2Vr08jhtXKpSx1H9g/k5MV5rWK6DmbJD\nfVk7Rzx/VHYhquZciGrOym/7rLDhlIx0pSwSIHNqn1anCX3K549CVnaIgI2dOgHwceIkbvn7s6lz\nF8RGupfXZb76kWdBKs3g+jUfrl+Tzdi7dKnJz7+0kSu0GQJ/n2ClY/uCtir2Wl2QmJtyIW47xzdc\nouuY1rkaR36g3KLVvPstf2VB59RpyYKHsvDp97Ff5KSbk3Cz8DwyFNedy3jVbyIFzK0IT07gRaSq\nTbdRYVcehmt2/UySprPT5zFjqug2e2YKgnxScabjYNqf3s77AaqTFUOQr366CybsZc6a/mrPJSWk\n0r3h72w4PJ5S5Q2fmt/78oapz2Qzkl/Ly1TIehZrTGRqHI4S2X9WbHoStiZ66iLELSI5YSMW1lMx\ntzZcwi8nQVvb/42peUcNtfXD/OdHOBMs2/wxNRIztWInqtmXIC1TqpFwr4e9ZtuHq7yJC1E597Cd\net2ALEJc2rgtfStUZcL1s5z99Jb3QyZRYusKeTnIXMjK2TtpHHOGILDq8W3+eqaQuHQwM2djyy7U\nd/k2QvRvvkQw+Ngx7o+UzQjvBgTgVqAAHffs5s/2HahVWPfLyr3tco0ZgQGsrc04cdJw0pn942pc\nKxZl2IKeBrc1FNt330aakYnEVEzVykWproc55r5fIM5WlpR2UrVf733szYeISNwKOtOrhkLm0W3x\nGtZ270ibCoZnMZZmZiq9DLNmlGXtnLjcZZhSWfZMJNqQ07YanZpMjQN/8rzvBCU9kJzXfPvTZHn2\n35zImtV2KVWRtU066TEKFWh8O/5rwRGa0L3h7xy+9ZtBRv7s2Ot/nf4lmjP3xV7mV+nPDO8dCMCc\nSn2wFKt6SgiZ0YiMVF1/skgzt8EQOUnX1vmcivi5Xv2kxjPk3kY+J8tsUzMqdaFH8Xq8ig2igk1h\njNUEgwD4xAaTIE1h7ANZMEL3YnWZWbkrdc7LNuf2NBqvlqgzBYGS21R3ny/1GEJ5eydKbF3Bic79\nqVFAO1Ft9PZi6UP1YaKGBlXkFyacP8eadu35FB1NSXt7Dr18iZOFBS1K6aeD2rnTKnnONHWoXbsk\ny5b/77q/vXwdTFBwNC9eBTF1gnJgxQ9/bSM0PoGCVpaUdHTAxkxC58oVSM/I5JdjZ1RmsTd9/Tj2\n/DVrusl8zZdducmr0HB29f8xV2Mb7HmY68Ef5cdZRDn1zjkOf3ihVNbj/B5WNe5IiRw23KcRIWx7\n/Ygzfsr7Buo2tFx3LmNoxdrMqaO6UZlFup1KurGuqXoZ2Y0v77Ps8Q2N/euB/x3SBRjdfR1/H1OV\nFDQEidIULMVm3PvyhgZOFTTWyyJHY3F5rB02YywuLS+3cdyf64CInKTrWNgfMFZfORs8P7/ANyGM\nk4GPiEiV2ftsTMzZVG8EZawVK4DO15fzOTmGiy09cDBVtn+tfXOePZ9usbLWAJoWUOSv2vDuEtt9\nr7Oh7jCNpoVHYcH0OK26fMsiyhJbV3CvzygKq/HH9QoNYsjFoyRmcxubVKsRv9ZoKG87qmpdPOrK\nzCxfkhMZd/U09z8HyusbIvFoCKptWI+dmRnOlpZMbNCQRsVls7yEtDSsTPXfbO3UcRVJSZqJ1/PK\nzFwnxwRITZciMdFs1bv56iNNK+VeLHvzPzews7OgV3eFv3tcSio2ZrLvfMTBE2zp3ZXxR0/zV49O\n9Nl5kMF1a+LuppoHL2tpXWfVRh5OGsOCi9eY0/YHg8e06tkt/vRW1kI2Eon4OHAaoCBBQ6LLpJmZ\nlNktW7FpIt3s18iOuV6X2fnmica2ILv3UruWa62jAxpvJX8y3BmIvBBu8ysz+fnxJk4HP+DuFx+s\nTMx5Fv2Rt3GaZqyyW8yQviUmXPbWS00+CWiOQBMy48iQviM6tIba8+qhm3ABWrlU4WmUn5xwDzWZ\ngJHISIlwAWo4yFymFjw/qtJH12KyByoiRXmTZrvvdZbV6KeRcAFqFyyi4kzev4IslUnQ14iygpbK\nYh49z+ynxNYV9Dqzn8T0NKbWboL/8Kn4D58qJ9wseNRtxm6fZ5TYuoJaezdw/3Mggyoq3LY6n9yj\ncWx5gffYcdwYOowjvfvQqHhxTr15Q7f9+6i6/i9KrV5FlfV/4ROhW5Pj9JlJWkn16JHcJVn1DY1k\n5Ymb+ASFq5y79FTmRXPu8RsuPVV1UTIEfX6sS706yqRtYyZhxVVZqikbiYQnQSGUdXLkY2QUz4I/\nqyVcUHiwPJwkk5u8/PaDweORZmaqEC7ISO2Hr/60WW6If7/QPwuL2MhIo2kAoE/ZamRqmFDOr6cQ\ns9IUmJHdeyfFwOANXfjvfWoMRKcidZlcoRur356gTwlZQr0Hke+obq9+dmBq1jpbZgjZl5cQPU6j\nJm5K4m4SYxXCy7ER7ip+uNldzXKDv+spxJTTMqXEpCVS57wHJkbG3G0r0y0+F/wUQIWMAYy+vkR7\nFFdoGcx/foQexevRolBlndf3GTyBxgc3y8N2FzeWuQtluYsZi0S8j4mk/7lDcsHoFsVKsalVV0yN\nNb9czMUmcnvxvAYtGVJJQbb733p/1en9VxZPKnAvW5YDL17wceIkg9t6XplJyxbqlelSUlV3y/WB\nrYUZRZ1sefAukH88H1LIzhqPnrIMs21qyDaPm1UuRf1yudRo/QobG3NsbFSVxbbce0TFQgVY0qkN\npsbG1CwqMx89mzZepW52+H6JYuMdL86+foe1xJTB+47yPCSUJ1P0E7evdmCtxnOf4qL50/sufzbr\nzNjrJ1jtfVuvza0s/FqtEcuf3FB7bkL1Rhx4741ffDSu1qrmRXOxCcnSdKbcOafRxGBpYkpiehrb\nXj9kXBXd2sD64j+Z6eYFkyt040DATcJTYvnl8SZ+ebyJQwG3ORWsPntqZobyBlN0mIwI7As9y1Yn\njOiwukSGFFUiXJD54eZEbIRuNyZ98Tw6QP73zobKP2QXczvGl2/LIf971DnvwbWwr07pamZi7+I/\nM6OS/uplt3uP5FKPIbwcqFAWyAqMAJlkY1hSAqVsHfAfPpXtbXtoJNysMOFkabo8Ei074QKU/qoG\nlfkvc+6GB16UW7uGix8+sNI994IxHh7qH8RevXIn2nPqwWsevQ9iZNt6SEzEDPhB8f28D5FFAUbE\nJrLo8FW2XFL/W84Lnk//mQ4Vy6v8H5rp8GV+EBDEH13a4TPzV6wlEnb066E34X6Ki1YyRanDqme3\n5AELWeL5+mJkZZlf8gV/1UlQIQvZam2Ip/qksTtayTY2T3/S7Fc+vqqMaLe8yt3qRhP+z810AfoU\nb0qf4k2VytIz1S8Bsss2ymAit79mZAQQE9aUrBmwOji6fFIpM7eeSFKc9owC+qK2o2KGXvbrrPbX\nRzsA2dIna2MMYNqTvVxvPVdlsngh5Bl7GxlusimfwyvhTbSCdKfUasyUWvqFwZoaGXM18KPWDbRy\n9o74RIVrXPJl4ZR/dzqXUMgB7vtQj16lriM20q0LW2r1Kj5OnMTYujJizMjULFupCy1bVWLxYuU0\nNyKRCFPT3D0y5Qo74xMYzr23/kTFJ1HUUbFJZC4x4aTXK2qXKUpxZztGtMl/NTZd5KoJfWvKNocF\noEFJw2bhHc/sUCkrYG5FSkY6cdmixkZdOy7/OzQpXk6YupBllvj90RXcS6i6mlqITfgUpz4VV72C\nuj1rRlSsy7LHNwzSaNAH/1Mz3fQ0KeGfY+QiIYbAxEj9j0oQ4pWO7Qt6kWV/jY/sh3rCFWNlt0Lm\n2SBSlWE0FufcuMvb1/iw3WImu3UkUZpKnfMe3I2Qvbmj0mRLe8uvIcFGIhGWYgmZOVjXvXB1lrw8\nwYrXp/M0Dp8ofXWIlfEwLJj3X9XJNKHM10SVOceehUcRfwACYpEyuTpI3PQiXIDHYxQC6JsfPcJY\nDz9dbdi1a5Ty8e5RKnXu3tVtg9174ylVXQvxS6dGuNjbMKRlHQIiFKprRR1t6VKvEkUcbXn0IW/S\noolSGUEser1L5dwW39z/PsovWs3C9rrTSymNJdss92b3UfgNms6DXuN43ncCfoOms7t1b5X9BU0+\nuppgKTYlOEE1AAXgkLvMfXXp4+tqzzcrIpvwnPd/q/a8Jj/v4Hhl7YXIuES2XXzAnyfVZ0RW6Vev\nWhqQkZHJ66f+VKldUndlNYgIjeXyySd4nn4mz7eWHXYOluy7Oh2jPD48mmBXQPYlJcUtIzlhHRKL\nXljZ6RbiEImUd8PFJm4aauqH1T5n2ed3h5U+Zyhr7cLcqj20BkIIaohrZuWuDLy7nh8uL+Ba6zm5\nGodvTG4SdMpi3e3NVInxn5eP6VS6As7mlpSxk/mBaprpmhhZEp8eTEzaBzKEVIxFEjKFdJIz9H8R\n2JspXAaH18p7Ku8iRR3w+K0zixedonx5FwoXltkGX74IYtasI8THyxJxWlmZcfKUZh/e/s1qkCbN\nwMZCNj7XAprVyxYNyJuG7h7/i9iZWPNbxYH8+mQtsemJ7KjnwZfUWJ7H+nI9/CnNnKsbHGSRm8AI\nv0HTEdC8jd+ksCuv+3/N1JyWSpX9a/CPVw3r1Ybx1Rqw7PEN0jIyVEwnlR1lgS9/v/RiRq3mKm13\ntuqJ685lcvJVB4mxWGmzLTj+KGGJFyli/aP8zvot28fKEZ2Q6rmyyhPpdqih+nCXKl+IMm6FsXOw\nws7BEkEQiIlKJDQoijcvgogIjVXTk3q07lIzz4RrLC5JhlTVRJAdFjbTsbDR3y0kJ+ka58I/d8+n\nW6x9I8saa2ZswvyqPWlfRD9vCUEQKGqh6sy+q+E46pz3wP3qEi600J6FNb+RlXIdYO8bbzxuy5J+\nzr9/Ff/hU+UzXU0uim9i9lPNcQwg4lX0TgRBSmmbLhjl8ieqTjsiN2jZshItW1ZiyZLTGjfXEhJS\n8PUNp7QWcX5TsX7eLcWdcq/f+seb/dS0L09qpmyGubamIujHSWJLNbsyFLco+M2i2kL9vxAeGEl0\neCxXD91n/gHNysTZ3QgXPLjCnLqq/rVZiE9L5V5oAG2Kl2VEJZkJYNWzW2qJdVjFOmx7/VC1k6+w\nMZVoTSk1pnI9Qr9uJgtkIDaywNmiOYKQgUgk+21eXKTI8rHhzF3Gdmyotq8s5Jp0k786kV94vpDM\nzEwS41O5ePwRNeqXIUOaialE/PVjgqW1mV76nu5VZwHQpV99xszIW3RXFgTBsIy2+kAkUvZhNZE0\n0lj3QeQHJj/eTQEzWwISZUtwUyMxa2sPVhsxdjLoEQtfKKc4OdRkAiWtFA+0gKDRnDK9UheWvTrJ\nicCHcteyb4EaBQpTatsfSuHFRzv1o3ZBmVxmVlRbRg5Jy4cRy3kfe5SaThN4EL4Ea5Oi2JqW5HX0\nbqo5jkWkITjk30JGRiY7dtxi/7676DA/A2BkJGLe/B5aCVcbYmOTOXv2GWfPPCVUy4SkZElnJkx0\np3JlzRohUyrI8uc9j/FVObf23WF+LSfbPOp8awYFzRzYUkfhw7rtykOGtczf34udszUpiSmc3nZN\nK+FmYXqtZix7fIN/fB7RtXQlJVEZt72rSM6hSCdC5tsLmmezs+u0YNvrh7juXMb8eq25GPCOu5+V\n5TGzZ6LQhKUN3RFhjCBk4mDeiCSpP5Ymqq6ZuggX8kC62UWZjYyMsLY1p+tPDelYcy67LkyhQGHF\nG/vFo0/MHLmDM0/m6+x3/7UZ2Dta6aynLzIzwvKtryyIjCyVjo01aIdmCJmMeyALXQ5I/IIIEXsa\njaecjarCmNeXD4x/KKu7q+E4Bt/bQKYg4FG5qxLhgmyJnvDVdpcgTeF00GNCk2MIS4nFO1r2gzoT\n/OSbkG54kkJb2HfYFC75vaetq3q/T4ColGSl4zrO06jjPI3Q5IckpIdgbVqcwIRrtCsms0kmpKuG\nN+c3Xr0KYvWqC3z6pNuUYWZmgrt7VXr2qkehQtpzyKlDWpqUwYM2Exam/4oP4NOnCH79RaY4Nnhw\nEwYM1LzJWdVOlQyyCBfgVJOlyvUnyRJjrj17m9Ft6jPWPX/co8wsJPg8/EiDdvokE0A+awXodnYX\nvtkCGzy7DKfRUeXEnzamyhGomkwZv1ZrxFrvO8z1umzQ+LOwIJtfbyErmedSYvpHTdV1Ik/mBZFI\nRMDHCIqXkulbisXGGBsbMdD9DxZvGkzNBrLYbN+3oUilGcTFJKkko8yOnII5/yWycqc5uPggEinv\npopEyi8FY2P1Nu0swRqA1i5VWVxdEUK6w/c6699doqFzOdbWHkw9pzJMr9SFH7/63mYKAqZGYroV\nU5XrEwDzr5KWVmIz+ro24ma4D1Of7JHbTEOTVW1jvtFRTL5ygdWt2lHSLu9ZEUCmqZsFEWglXECj\n3csrbCFdXE9yL2w+DQrOzZexaUNEeBwrV53n4QPdD4+JiTEHDo7HTstvVxsiIxNYvuwMjx5pN3Pl\nhEgkwtzcVCVCbseOW+zYcYvjJyao9ck1FMsHtmfarnMA/H3pPq+DwvhreP5k8s2QZmhNdpAd2bWa\ncwoyrX2uqml9vftIpeMNL+6p9adtVqQka701a2Jnh53EjOZFStG8SGlK2thTzUm9BKulSe6jBvNE\nuoN/bsXIrmuVyHLCvK6snH2Meb/s4dTDeQB07d+Av5edZUCbFZx88O8/UHlBQvSvpCYrosCiPrth\natYCawfFbrAKCRupd3FxMLXicNOJuFo6q5zr69qI9e8ucTfinXzzK4twt/leA+Bmm3kaRikQlKS8\n6dW0gBte7otIyUjnx5ur1AZJlLZ3YGi1mlz4+J4xNXOvvZodd0LUZzIwFMWtZTvjVib6Ze/IDe7f\n+8CqVeeJjFTNo5cTjo5WTJ3WgTp1cvdwvX37maVLTxPgr7pBnB116pZiwIBGVKqkW1q0VculSjbx\nvn3Wc/acquJVv9m72fe7/ok03auXZ/NlLz58lo315mvNLwePvReY2Kkxzjb6rUY7DjMsbLiCvbPc\ndTE1Q4rEWMzH2CgOvX+uVO/Ppp2wl8heOD8ULc21IF9WPLmpQrp+8dF0P6caBVnSxoF2JcrRpnhZ\nqjvpp96XX8gT6fYe3oztf15mw5IzjJ0ps8G27lKTlbOPseeyasxzakruonk0IVPIZPaLPSyqOjDP\nfSXGziAlUX2IalrKVeUCkf5fmzrCBZAYm/Cw3WLqnPeQmwqy8Pe7y1iIJRrFbjIFQW26H5Btyp35\nQfOmoLWpRGtUmaHInqInL6jhKPMzthTnXhxaHV6/DmbpktMEB2tPjGlkJGLkyB/o8WNdjPIo0j1p\n0l68nwVoPD93bjeaNtOsF6IJ06Z3YNlShXh8iobnqWZ5w19cx6YOpM60daRq0FPOwpnHPpx5LAso\n8F45MU86FOqwoF5ren11G2t/egdXug6nlK0Dv9dvw1yvy2QKAhc6D1XKHjG7dguuBcns2FlEDfAh\nNpJWJ7Yq9d+jdGVWDeOhmgAAIABJREFUNs6/4KbcIF+CI6K/xLN/y3V2rvOUl/VqKtsksrQyw7Vs\nQUpXcKHfSMPFMrTheNB9tcpi+iI1+SRJsXPIzNQ+G7Fx3Jvra+hCQTNbwlIU9r3jgbLolyRpKgtf\nHGNWle75er16hYsSEBfD6y/hFLOxzbP4zPvoL2r9GRPT02h3fCdhSQm8Hay/u5GDmbL7nZGOF9z1\n6z6EhcbSu48ifDQxMZWVf5zjxo03Oq9Xv0EZfvutCxa5SOSoCatW9adPn/VEhCv8R4sVc2TT5iFI\nJJp3ynWhTZsqSqSrDn6fo0j7KlE5aP5eds5VL7WqDl5Lx1N9ikzv984bPxpVcNVaf9mJa8zolr/P\ndN1sQQu+sYrnckD5Ggwor967J3s+vz4X93O8vWyWn51wxUZGePUch2MehM3zC/lCug1+cGO5hyLc\nzqmgDSYmYpISU0lOSuPVU9kS9PdJCsdnsYkx/Uf/QN8RzXN93cbOFXG1zN2ucUx4MzKkqru8WRCJ\nLLCw+Q0zy9wrxOuD0eVaM/+57LvLHn02smxLRpRR7zajaVP9TdwTPiX60M5F9UEbcOoocxo3x9PP\nl08x0QyqYoiYj2YIKAIfAO5/DqTvuYNK/rjz7l1hXoOW8lh2bbAzLc36GQcYt1Rm/+5TWrst7v37\nUA7sv8/mzdf0HrNEYsIfK/tSseK/Z8o4cGAcr18H4+0dQN+++Re3rw2PfQLZeuq+3ARhCOGCbLZf\nr2xxvN4HsPDIVc7PGqpS59bCMTSZJdvQOvHgVb6Tbm6RpaXwNEKx8fpx4DQyhExMjPJvZZcfyJfM\nEQ9vv1PxWNCGZ16+nNh7j53rPNm5zpOfxrTgpzEt9GobnhJDhpCJi7kDBc3sCEnWPkvVBLsCN0iO\nX0VSvCIYQiSSYO2wS6sLWH6jY5GactJ92G4xt8Lf0KSA9qWnOl/XBGksz2PvY6Yhemt35x60O7iL\n871lppiexw5wuLuqNqy5Fp9FTciaLefMFmEvMWdz667ULSSzV5azd+JpuG5vBOfC+bPJlxOVKhVl\n4aIfDd58Sk2V0r6d7N7auldlmh4phAAqViyS78Tu6Gil0SZdy60YtdyKsXDbJa193Av1p0GhEmrP\nbRnTg6qTVhMcpd67wtbCjAuzh+H++zaS0ww3F0ZET8HBdgbGRpqF8bMwqrL+4dArGrVj/A1Z2Pa+\nd8/oV6761xRQ/1uEC/k0063TWHeKnfWLTzPOQ6bAXr1eaarXU7i1XD75hI615nLmsW6XsgJmdvS/\n9wd7G8g2EOLTk3W00Axz60mYW08iLeU8pmZt+a+ioo2y2W51Ea4meEVeoaZ9E7wiPTXWySJcQC3h\nAlodxTXB7KsNzWfwBObfu8qses3Vmi3K2jnyNDxEY1LMLPT6pS3vnvnz4u47eoxtrbEeyKLBdKFA\nARv27R9nsP3x1q23zJ93TMlf9+KF5/TqVQ9XV92k8W9Al/bDxftvsLEy47LXWxxsLahYshDm2Uwa\nq7xvqVXdyo4iDrYER8Xywj+UKiVUbeyF7W14vmqiTh0NdTAzrYGRBoW/LIhFRkiFTGaq8bvVhI6u\nbnLS9bh3kX7l9HNTe/YphColCqmEjP9z5SF7bz6lmqsL998FsvvX3pQu5KihF8OQK5aRpmfQrpru\nxIrZcfqAZuWk1l1q6kW4WYhJU7zpn8UY5oajDqZm7fgvZSi83A1zlVMXBuxqWZ6Slm70KjaWS6Hq\n06LrA3MTw0nX5OsP1kJswrImbTXaibMCJD5oCTceWENmYilXvQRNu9amXcExBL4P1Vi/d2/tUoBH\nj/3K/gP6E64gwNw5R2nZYgnz5h5TGyDxLQj3aNBxteXabM8D5u4hNV3KL72b0rpeeWpVKIbnA4UC\nl1TIxNnMEjuJOY8jgjX2c2TqTwCM3nxMYx3QL+ovLf0V4VHjSJf6kZxyg5j49QSFaY42A2hSJHey\nAtnNCNnTsGvDlssPqDFZWX6y/oy/GNqyDlfmj2TVkE6IjUUUtMu/2AGdM93bnq9YOEl92uypQ7Yy\nY3lvHJ31UwW6euYZLTrK3kBxMUnyzTYwzEe3cxHFssMz9Bm/lMtVDqP/s1A3vyhtVQmAWxFnqeOg\nn6kmO/zjZH69tgZsrL37KnKjr7BMOXvZTOFqoK9KUsv3z/yJ+RLPpttzGdVkAZtuzcG5sD3nwzZy\n77w3148/ou/EdohNlJeLRkYiLl6aRts2iqzQhs5sz559xqqV53XWmzO3G81y4XWQE/HxyQQHR1Oh\ngmZXpQo25bkbeY+Gjsr24AIFbPH1VRVCB9g9/yeVsk5NKsn/FouMMDYyopytE0WtNAd2WEpMca9e\nngvP3sqzRzz9FMKUnWeIiEvkyYpfEeuZbitd+gkz0zqYiF0xEbtiZGSDqUlFIqKnYCIuhrXlAIyN\nlEPat7fMXUqgh73GU/2rfm+V/Wv0yviwfqSqP/KF2cOVjpPTpFiZ5V+2E52kGxoUhalETM36ZQgO\niCQwW9TOi8d+9G+pO4QuC8s9jrDc4whnnsxnYFtFni59ItWyY1SZdvK/sxOweuib3u7/DrJsulFp\nCSqpfJoX0F9TNzs+xclcql5Fqn+g1cE7QjYDTddTBzUrguhhqOosq2x1mY0xJSmVwPehnNt1i/YD\nZZk9GrSrRoN21TT2KxYbc+XqTNauuciIkc35f9ydd3hT9fv+X1lN0r1pSyktUNl77z0FVERAcKAM\nUUFZoigCThSRIQjIkA2igsjeIHvPMktLF917Js36/XFo0zSzpfr5Xr/7unqRnPM+Jyckec77/Tz3\nc9/Ozo79QE6euMdXX+2yO66yppTlsX/fTRYu3F86e+7fvynTPxpgNm534l7qudU1C7gAfg5OcKxh\nZHgzh9IC898YwMEbD2j50U8mEpn+Hq4OB1yA/MI9yGRhpGZOQqnoQnV/oyGAWnPbLOA+Czzlpqmm\nTHUR3vKKN4+4Kpy4Fv2EVUcu8uBJGvs/e6uqLhFwIOgOHd2ZoaPNbW1KdBJKZqhqlQa1SoNGo0Or\n0fLwTiIblh5h8eZ3kCtkjOo1n9zswtLxqqJi2natyxdLHSdxW8LLNTqwP/EKA4JaWdwvllRHr3s2\nubz/AolFySyO/IVP6n2It5NjBckrGdH0CawaS/PYXNs8Vku4lS4E3QyVY/oWHnIhGF5Mjrc6RuEs\np37rWuxd9w9LP9qKT6Anm29YFpopjw8n93VoXAly82zXA+RyKVu3vV/pTjSA5OQcpk3dYlFX4cCB\nmxaD7uCggSx4sIhJ4e8hF5veQLyroEXeVlrg3P1YPtmyn+wCgTuu0+up6efFlIGd6dHYtL349D/3\neZKQSfuOz3HpYhSvDDefAPl7LyEzZx7+3ksByCvYTk7+aqr5rMXJTCL12dEhsGaptsLL+zdx4qXx\ndo4wh1QipkWt6qx8p2rpmiWodCJzyhcvmTzPyshnxttr8fFzo1qQF5dOPSAhJh1XdyUyJ6kZO2H9\ngWnPHHABvJxc+fbu71b3S6SVswEvyv+FjMQaZCQGk5nc2P4BwNGU4/YHWUGQUlhu38+LtNr4UB5X\nMyrf/10eEemOz3BLkPk02N5Od0zfwuPpTNdaK3BGkpDi+HHPdJafmMWBlBUOB9zKYPDgFvTpa/7Z\ntm5Ti6PHPmH/gY8qHXAXLTpIzx7zGDVyuVnAlUrFLFw0imPHLSvB6Qx6ptedwvgr77E17jezY6sa\nxVodHT5dTpOpi5iwaifZBSpc5E6821eYaY/q3Nws4AIU5Kvx9HJBJpNw20oziEikwGAQArhWl4Sb\ny3CCqx1FJq2JyIJWtS2cS55GpiqCPE2M1TFl7dIf25lInLr7mCZTFlGstbxSyytSM27FDppMWVSh\n67SHSrMX+r7UkkVzjMn+O9diiXmUQnZmAZ7eLkz7aghH/r7Gk7gMqof4MGhEW5bP28ve7RcZOLwt\nAdWrjhZ0ptd8q/vEkhDgvEPnKcxbQFHeYrPtBn2WVSv3sricdYVe1UxvLjqDnqtZN7iceYNCXSFF\nOhXR+TGo9cVsaycY813LusWuxP0EKQLo4GNfpCZQKcyES8wtqwKPso3Uu8jsDBOpRmtQSCr2o7HF\nWADwCay8rGFl8fHHA5kypR/r159GrzcwYULF8+FlYU3+EUAkgi++HErHjtb1KXQGPfuS9jM4aCBr\nW//CmMvvkFiUxPS6z57eAEHcZuqgLozuLugNd/l8JdkFwow/wNONL0f0MfFpW3HoPN/uPM6ITubp\nHb9q7shkEi5djGL2l+azQq02jvyiXYBwkxWLXIlNakLNQNOWXp1BRbb6IdnFD8lU3Sa3+DE5xZEM\nqWX6u5WKnZFLvHCx0SrupzQVo2r+209cH2FZ4axLgzDEYhE3Y5JoXcfYhv3mT9u5EZPIhD7t+HZk\nXwoq6YtnDc9EGQsO9WXziuO89m4Peg5qxg+f/cmn76xj+R+C2Z27pzORd55QPcSnVMNzzcJDDLSw\nDPm3IJHYmunqKciZi6rgV7vnMaCzKsZ8LuM8RToVwcrqbI7dRr+A3vjKhQq3SqeijXcL2ni3sHI0\ntPBqQguvJlzLumn3OgB85EJer6pSCwAft+7C8H3CrGpH5B0+ad3FzhEwIOw5/oyMYHlPy35i5ZFc\nmGd/0FMUabQoZVLy1cW4yquuW8wSnJykjHegW3LvnussXnywNCdraaY6c+Yg5s0zdWioXz+IhYtG\nOWT1IxGJGRwktNRLRVI2tFnrwDtwHANa1GPhnlO81LYhHs4KTn01gcz8QrxdLc/o5w7rzdzfj3Dh\nYZyZaWbLVmEYDPDwfhI5OYX4+JYXhlLi6fYBeoOgRCcWu5ULuAaOJbxJQ+93UOuyCHLugo+8MZ7y\nuhavJac4ipi8PTT0nmDzPdb19ONBtlB7ylIXcTwhih7Blh2yX2zTkEAv0+ve8MFwk+dfrvmblrWq\ns+vSHWJSs7ixcLLN17eHSq9VVv94kOzMAjavOM5nEzYwY8xaxGIx0Q+SGdhyDv2azCI3u5DvPv6d\nfk1mleaAVUW2O5KqGmKpua+TTvuArJQWZCSG2A24bt6r8AlKQGyDzN3Bpz16g44wlzBeq/lqacAF\ncJE6tjyNLoilhVdTXr0wnsQi6xSpErjLlPQLcoyL6AjaBdagmZ+gqNS3pm2lsBL0DKnN/M79eD7M\n8o+kPFbfvmK2Lb2gkE/3H+Hs41huJiaj0+vZeesOSpmU09GxLDvruC03QGZR5Xnb1rBs6RF69pjH\nokUHTShkL75gvirq1bsRx47PpG7dQD7+ZCDHjs9k2c9vVtpbrarRq4nw2UanGFc21gJubpGKIe0E\n4aTxK3dYHpNbiN5g4N5d8+KoRCLoI4hFprPPuKSSCYiInsEbCXDuSJBLd66nz7cacAG6BP5MviaB\n40/e5m7WaqvjFnQyzZO/fcyyOSUI711R7rM5fe8xby79nb5fruGPc7eQiEWM7tGKXZ+8+cwBFyo5\n083OLGDHBqMf0NWnPlEyJylhtapRI8yPkFp+1KjlL/wb5otYLObs0bt8NXUrSfGZBNYQqpb3b8VT\nr0nF866djs6wmVYogaWZrkRaF2f3WeRnmS87xJIQXDzm4qToU6Hr6V2tYv5RZXEi9QzBSoE+tLnt\nSl67OAEnsYx5jT8vzfWWx7FeFeNJO4K/X3iNF/7eTHN/y3J2ljC8rmP5boDN926YPL+VmMyhB4+o\n6eWJWqvD2cmARCxmSJOGxGZl8zgziyc5uWQUFuLj7NjNq9XKFZWyXS+Pw4duM3/+PqtOF0CpXY8l\nLF8x+pmv4d9Ai1rC90xmQ/Tog7W7OXlHaJG/tXAKc4b14ovfj5KYmUuQt1HAf/OGM4TV8qP/gKaI\nK8BoCAm8ZvK8SJvKzYxFyCWeHI4fRh2PEdRyN6YrHmZvQSn1J9i1J4XaREJc+yITWy8oNvZxXDRJ\nLpOikMmIS89m4DfrGN29JR8O7ETn+kau8K5Ldywe+8F3O1DIpfRo8xw92oTjJHMsnFYq6JbwdsdO\n7ceahQIFxBGebcdeDQBY+vVuvv1lNCDMmO9cj8U/0JMZ84bSqEWoQ9dQniplDUJOtyz0gBi5cghy\n5RByM4YhkdbD2f1TRKLKi+c8C7r7GwWpJSJxaa73f4G/XzDnelYFwtYuMNvWJCiAJkGWfyA1vTx5\no1Uz3mjVrMKuvv/ExNA1NLTC15iamsvE9zfYlX5s2iyEWbNexNvbxea4fwPOymdLtZTMasvTvp5k\n5vDZ1kNcizadsV54GMfL7Rrzxe9HeXH+Bi59Z3Sdfu1N4/c25nEaLmGWFfVsIa1ICMDtqs3jRvqP\n9KnxO/ey1nI4fgR9agjpruc8R7EvdgA1XHsT5v4ioW6DKdbZFoH3cFKQU2xU76u9cb6JKHoJrkU/\nYVyvNjh7e3BrkZA3H7V4m2A4MFno2kzIsPxar/ZvwaFz90nJyHM44EIlg+6d67Gs2T2Z4FBfDu+6\nilrlmEgxgJNcyrXzj0qf/7hhHPM//ZPje28wffQaZE5S9lyZa/c8DT0s946Xh1hSzeS5ThuHRBoK\nQFzBNap7b0FSpoqqNai5nrmT1j6vOnT+/x+h1eo5sP8GgwYLy8DCwuJnVuEqyw2tqBpgRV19vz99\nukJB98iRCL6bZ9spt0WLUD6b9cIz0ccsIS9PxaaNZ9ixQ/DxEolg/4GPrKYjfH2fjaer1Qk3MOnT\n7q1irY5WM34yG+cklfDNyH6ledzZr/Tiyz+st5iHViLgavWF+CmNtQ5XmbAqre81xqRY9qTgOM/X\n3E9OcSRxeQep7tIDJ4lt144fOg5g/AljR53OYGDGuQPM79DfZNz5B7FmUp5bJr9K06lGxkJWvuUV\nTfumYchkEtQOirSXQGRr+cS/0FWQmZbHyJ7fM3vRSDr0bFDh4/+IP8OJlFtoDXrCXYMwYECj19Iv\nsCUtvetYPCYj0ViZdPVahlwpdKEcSpyHVKygZ4CxMpyqiqRIl01NF9ssgrLn9A6MQiSquo6V/wsY\nNeJn+g1oyutvdKJX9285euJT+wfZQI5aRZNNAlfz+NAx1PasOlJ8Ca4lJTH0N2EVZi/FsH37BVb9\nYl2ZTCqVMPeLl2jf3rH8tiM4e+YhGzacttpRVhYHD81AJjNPAcTFZfDWaONKqKSY9/Nnf/D+N6+Y\njTc7Pi2bgfPWcXj2WAI8hQB+9FYkh29E8vXIvjYNNPt9tZYavp6sfvdli/u/+P0oOy7c5ty371Vp\nB5cl5GliuZ/1K428J6KUWg745b3PtvYZQYdAxyZrJVhx8DwrDl0onQUDdB+7lBmje9K/k3n80un0\nSIRVhNW5xX+e3fd+2lGzcM5flQq6rlIly1u9h0pXjEqnwdOpYks8vVYgTusMxbjK/Ex0DGIKLqE3\n6EgsvG036JaFQZ+JSOJ4HvTfRK/u33Lo6CclH3yF8PPSI+zccZkp0/pTu3Y1wsMDMOgNdgOuAT0i\nOzVZD7mCyyPfo/XW5f9KwAU4HRtT+rhIq0Uptfz1tkXremVY22emjZXgzJmHbFh/muho60G2Vi1/\nZs95kdFvmqaULAVcwKLA+t3L0fgFeXLiryuoi4rx9HWjXR/LufaHSUJVvyTgglBcKymwlWDf1ft8\nuvUABgM0Cglg6+RX2fvpW7T4yFSnoCweJArn/rcDLoCbrCat/W13srapFsylFKExakR40woH3O1n\nb7Li0AV83ExXNyfWTLJyBA797v4nJVX/IE9SE2372/+VsJj67u2o7doCmdi4tO0fKPALFRIn1kUf\n5d1w844eW9DpYgCQiJzo6Cf0WB9LXkjPgKmEurThZMoyFJKKLeH0+izElQi6BkMxOu0j9NpH6LSP\n0Gmj0BRfx81rKVKnlg6dY9yYNYhFIn5ZM+bpOYX21p69Gto50hzvT+rN2HHdkCtkHD0SwfbfLjBn\n9g6CAj0JDfNDoZARH5fB/fuJJoE4W30fL3kDLiRPQyQSYzAYyNfE0tL/C7zkxhurv7MLsWM/qvB1\nOYrfIyJKH1sLuADt2tXhwgVjiisg0JOVK0fj5ma/ZTQ9PY9jx+7YFNrZtOks69edsrpfJIKZMweX\nfkZlxc5BkG+0hvKGlrvWnCS0XhBypROevm40aR+OxEYDxZUo692Zp+4+ZuaWA+QVqfF0UdCn6XMc\nuvGQiLhkvv7zOLOGCjejD3/dzZK3zWmCEXH2WTf/JRp4VyPc049OgTXpX9Mxhk1ZDO/YlOEdm3L9\ncdWaozoUdLfFHSGnOJ8JdYxdaKujd3Mj6yE/tzT3aLKHKXNfYub4daUc37L4LW4ezTx78FLwZP6I\nn089d+tf7m1xpyoedLUxZtt6BhiXot2qTazQ+QAM+gx0ujj02hh02hj0ulh02lh0uhj02lgMhorR\nmHLSX0AkdsM74J7dsRMn9WbqZFNni4oGXIPewA/z93H2zEMMBgPjJ/Rg7hdD8PRyQa83mM2uenb7\nls8/+4Ovni5nzyS+Qy33V6jhNoACTTzPeY6u0OvbwrSDB6nt7cV7bQRu9+Lz51h28SKPJps3CyTl\nCTzgmV1sc4y/+fYV7t1LZMXyY7RsFcqbb5q3uVvCvXuJTHx/AyD4rS1abCw6vjthHfN/eBU3NwWv\nv97RYtCVSsV8/c0rZr5rV66aKuX9/of1mZS4XH77xbHd2LnqBINGdyYnI99mwAU4GWG5i7HEEXhA\ni3p895qQ95yxaX/p/pKAW8PHkxMRUej0epNce0aeY63g/yXmtqk8o6gsmodVrYeaQ0F3cFBntsQe\n5Ju7G/iswZuMujCXX1rN4GqmfTsUS2jeTiAqWwq6YS6N2Zu4ApnYiQKtPZvqiqectZrrFT7GeOwt\n1IV/mhhXAuRmVH3RzaDPIzOpPt6B1gPvtq3neeGFFrRrZ57LLixQM+j5H5n3/XDatLVMDAeY9N4G\nGjYOZsYnA022/7LiGA8eJPPikJbs2nmVhYsFF4IB/X7gh4UjaVGGZTIo7DS5xdFEZm+gmd9MEvIP\nIZd44ad8dvPLv+7dpbq7e2nQ/emCfd7uuJaWdTjKon79IH5ysA09MjKZCe+sM9l261Y8eXkq3NwE\nxsvDh8m8+MKi0lzswUMz6NdXoDTWCa/GsmVvWk0ZRD0yph/atbdclyjBw4fmnnRDnjZ27PjlOO/M\nta0XkJhlnFWvOXqJn/afxdNFyY0Fk81urgevPwAwmdXu/fQtmk5bRK8vVnPii3dKt09cIwgHebo4\nzgAq1KZyJ3MVsXkH6FNjC+5OoQ4fWwK1VsuCg6e5n5zGw+R08lRqnKQSvh3SlwFNKj67/S/gUNB1\nkSo4kXqNbe2/5J+062xpNxeARc0/fOYLmP/pn8z41ijlptYXMbTGdC5n7sdJrOD3uO8ZFmJZou2d\n2v0tbi8PibS20ZrH4FilUQiwO1AVVG1HUEVgMOShLtqBXGlauMjPV/HKkJ+QSsW8MqwtzVuY56p0\nOj3HTtovft29+4Qly4zi5j27fcvPK0bzzruC5umgAQvYU8Zxdv9By+mBPM1jWvp/QVrRJYJdKyY8\nYw/l7Va+6mGux3o+Xuj9f6NZ1TWM3LwRx9Sp1v3xLl54RK/epq7L/frO59jxmchkEqvaCuWxa9fV\n0sff2CmG3b1jXQfXXsAtgcvTDr+xvdqw6uhFsguKzAKu6mlFXiwW0b2R8aYtEkGn+qGcuReDqliL\nwkmKwQB34gX9jb2fOq7I5SR2JbXoCkPtWDKVoEBdzMZz1/nr2h0SsnKQiEX4ubly/KOx5BSp8FAK\nAX/q9n1M/30/7ko5ncJDHb6e/woOV1um1R3Jz5F/EqjwpeCpe61SIicq/wlXMu9xMPkCP9zfwpyI\n1RZFtsvD2VVIth/fayTM38o+SRe/Vwh1aURr7wGMrPk5BqxzNEeFdnPo2j18/7a6z2BQoy7cTm7G\nMDISg0v/ctIG/E8DbgkKss2DnKurgoGDm7Nn/3TEYhEhNc275dwctKT5YeFIkx/cy0PbEHE7ntWr\nTtCz27eEhjpGBZI8ZW9Uxey2LEI8PIjLMeb/w7y8GNXUXAdg4l7BsHFu92crgj18mMwbb/xCzx7z\nTAJunfBqZvq85QNuCQ4evGVxuzWUMIjqhFezM1JIcdhCepL1Wsnpe0IaY3R340pg46ThFse+/MMm\nAN7oal5bWD5OSDO2m7kMgF5fCN1hHs4K3JWOz3SlYme85Q05n/wZf0S1548o215yu2/cY/WpS3z7\ncl/ufj2F219OJjlHSCnlq4ppMGsR0WmZdH4aaNuE2W662h07gkc5u22O2RM7kqNPjOmeB9l/ojOo\nSSy8QJ7GulqeLThcSGvpXZdW3uZSbLVdqwMCp65fgG0V/7IoKihG6SJn57lZpdvkEoGJ8PeTpQyu\nLuRW2/gMtHh8RSASmwqp5GYMQ6M+98znLYFY7IvSbbJAGxMpkDm1RiwJNhunKb6AThOJThuJRnUU\nnc66TXcJDAbLbdPvT+zN+XOR6PUGatUyN+dcu+YkWzefszvbbVGuGeX1Nzry1Ze7mL/gVX7bep6l\nyx0z5gxw7mR/kAXUWiR41HWuWZM3mzWnob8/1VyNhaQ53bszZpdR8/bYaMszqSyVip61alncZw8R\nEQl8/dUu0tIsa0MsWfI6jRoHm7Aepk6zvsrauuUc/fo5pouxaZNxlvfzz6PtjrfWuJGakMnxnVe4\nfeER32x9z+KYyb8KXORxvY03xnrVjd+d47ejWH/iCjdijIF9/YkrTB1knvMe3b0V609cYf6uf0jL\nFa7p9Nfv2r1+EARu/ozqTKBzR1r5f4qz1La57Lf7TrLt4k1uf/khr7Y13nBjM4QbTIsvlnJtziSC\nPN3xc3Mp1XmxRH8r0mWQXHiFMLe+DK75G9sedaOOh3XtkEE1t5JTHFP63ICOtKJbXE9fzvMhGx16\nv+XhcNAVPaWdDTw9nb2dzbuLKooDN78y21bXTaBpdfMfwe3sUzTx7EqYi+NtpuWhKb5IUe58NMWm\nVkGOBFyJ9DlilV+BAAAgAElEQVQUzq+icB1ncX9Znq6n/2lEYvuMB5lTO2ROT29MHl+Wbi9WHaYw\n93t02gcWjyvKW4zSzdjzHRGRwLTJm6lZ05fRb3elWoCRKC56OmsdM7YbY8Z2s3tN5eHmrmT+AmOO\num/v7xEB0z56nt59LM/sngUhHh70D3+OpPw8Vl65zLXExNJGiqgpU+keZj+QHnoktKGvfsHcBaA8\nHj5M5t0J63BykrJu/XjmfbubiAjzir5UKmbtr+MIDhbobanlGAbPP2+axmjVKowrV4SZ5JMnjmsT\nb90ifBd9fd0qJdsYFZFAdkYedy8/pkadamhsEPVLxObL6+kGebnT+uOlqDXGY1/v2oJpg7tY1d6d\nOqgz609cYfMpoaPs2FzLvxNLkIgUDK9z2eHxb3Zowebz14lJzyLU14uXlm3mQXIaw1o3ZkSbpswe\nLKxujk4XGDwlDSCWsCN6EK+FCze6Rzm7EYtkHEqYQICyFe5ONQhzM0+NeZTJNfsoGnA9fTkBzo6x\niyzBoaDb95/JHOq6mANJ52nhJSSnR12Yw5Z2FXN8cBQeMj+aeHat8HEa9SlUBWsoVlVc19bFYy4K\nl7H2BwJF+ctNnjsScG3BSdGnVOuhWHWE/Kx3SzVIAVQFG0yCbqNGwXw2+0W6dKnH339dNUkPuLpY\n50hmZ03GzW0KIrEXOTmf4eW11GzMooUHuHghigU/jgTg0JGPGTdmDZl2WmNL8E9cR4p1mdRwf416\nPp/ZHZ+cn8/HnTtzNi6OK0+e8Puw4WyPuE2Aq5sJu/xOaipzjh/jWlISoZ5efNOrF+1rCMvHqQcO\n8Pxz9s1Rwch/LS7WMmrkcrP9Li5yNm6aYNZ59s54ozDS4iXmrdJTpvRj1KgVpc/Vag1yuX3pS2dn\nJ4qLtWz/veKsGYDajYLZve4Ur08XWDyZqZblPr/ZIfwm+jUzLy79OvEVgrzcuRgZR9twc4EogOyC\nItyVCpPvWreGtTl5J4rnW9bDz73qPMSsIdRXkFb9a+JrNJi1iLkv9MJggKjUDD764wA73xc+F63e\nsj7uoYR3eD5kAyDibPJcOgbMoY7HYOLyT+ItD8fVgmRkpvoB3mVEePwUjekTvIKHOZY97ByBzVvr\n7IjV9P1nMkFKX86l36Z/YHtGhvRhW9wRelZrjUpXTN9/nl11p2IwoCr4lYykMJMcbEZiMLkZI8sF\nXAly5Yu4+/yGT1CC2V9ZOBpwAQpzvzV5rlH/8yxvyAROit54Bz4yuU6vAHPGRY1gb3p2+5b7D0xz\nfF5eLmg0OhITs3jrzVVkZxupPHpDHhJpTTTF15BILGuS7t19nd9+n0hwDWMDQ3RUKt172G9kOfK4\nPsU6wXQyPnezQ+/X38UFlVZLx5AQllwQ9FOHN2rMW38ZWzhXv/Ai4/7exbWkJA698Sbz+/TBXS5H\nbzCw6949DMDS541pqMTcPLJVKvKLzVMzYWF+ZgWuY8dnlv7t3jPVYqtvbq5A++veowGNG5vnCgMC\nPXEpc8N7rUwAtoazZ4ymkRfKtMaD5X7/ZCv52sFvdUGrEQKNt7+72f4nmTlsPyvIhs5/w5xiGeQl\nHFM24JZQyGLTskqvp9n0xQyatx6AN37aTnUfd2YN7cm+q/cZu8K6kpdtGNAZbJtIltfeGPzTRpoE\nB7D02Dkafr6IQT9tRK831pE0Fma6e2JH0jf4Fx7lCjncjgFzOZn0CdF5B3ASu3Iy6ROLr51QcMbk\neWSOkOq6lPoDGn0+kTnW60XWYDPoNvd8jkNdF7OuzSy+u7eJK5n3SVFnsjnmIG+HDeR61gPG1Pr3\nTSH1ugTysz54GlxrUJAzGwyWhIVFuLjPxico9mnAisXVaxkyuXm+UV1oVORXutrW5yyLwtzvzLZp\niq9aGPlsKNAKAWPiBXNXDIMBxr69hoNHPubIodsm++rVD0Imk+Dj7Uq/fk24+LQJQKdLRKksyV0Z\nkMkaUVCw3uRYlcr8/7T46XLVv5r5j7ksorKWOfK2zLDupSFM3LeXq4mJREycxM3kZH69dpX6fn6l\n5dietWqRnJ9P9JSphPv40Kp6dRr6+yMWiZh68AAn3nq79HwG4ExMDJuv3yAp17p+75CXjR2Hd+7Y\ntnMq2yr/ySfWawzzvhtW+jgzs8DimLt3n9Czxzx69pjH7Nk7Sm+Kn332B3FxGVx/nMj+a/f59cQV\nftp/1iS/evGSdaeQ8oadZdH/a2GW3qKW6Y32/hPLnXLLDwo3vyZTF/HeKiHINAoRhImKioXvyMYP\nhvPxi90Y1qEJSicZlyLjK9Ucka9JJFN11+aYIo3wmlqdnolbdvMoNYOPB3RlUs8ObBw7jBFtmvIw\nJb10fElxrSwG1dwKgEpnTP0U63Kp5dafAOdWiEWWF/1lZ79qXS65mniupf+MQuqNTOxKuEfFPQlt\nphdeCjYu8d+uNZBEVTo3sh4yo74wjc/U5LEp5iAKsRODqztGMHcEBn0mhXkLUBU4lqiWybvg7rOR\nijTY5WcbaVBKN3P1IWsoyjcPLra0dm2eS6vhWNIDBtYwz5UeS3zA4JDG9Aisy6aoSwyu0RgPJ4GR\nIBLB3gPTkckkZi26o17rCIBcIWP4q8bCpkQShEjkgl6fhlxhWbBboZCZFc6cnKTss0ITK4vo7J9N\nnosdtGKp7e3N8ehojkdHIxGJUMpkVHd3Jy47mzqLFhJVRkMhR6XiaHQ0LzcQZt3/xMQgk0hMCm+H\nHjwkxNOTEE9Ptt68yZyeltkM773Xi51PRWaOH7tLw4bmhc8S/PabkRsstaFNUP4cqam5eHu7snfv\ndVauOIZGY93As2XLMEJCfAgBmoYG0q95XbN86uVyQdfdAYZKWSuab0f2K308fuUOLj2K58YC85Vq\nTqExtbWvjCnj+Xnvc/ruY7PxF7+bSJOpixi5eBu3FlbM4cJZ6oeLzHY3Z1GxFolYLHiXhQSxbJSx\n8OWhVNC9Xi1+u3Sz1Lm4QK0ppY+Vh0pnXC1o9AUkFl4gyLkdSonl37BWL9wUD8SPoU/wChQSTxp6\nvU5yoeM56fJwOEq9WL0Lc++sZW5DIVm9MeYA8YUp7On8g8m43ZH3aV4tkO8unGJZn0EOK0pp1OfJ\nzRgONihi5eHq9TNyZcXvNHqdKdVDJHo2BS2pU+W4oUqpjIE1GnEk8T69gwRmSL5GzZ+x10kpymOA\nviFDajblZuaT0oBbeqwVib+yaYHyUCjsd+g0aGCedlAo7AdQEWITep+XwjHqWHJ+Pg8/nIzUjpLY\nG82a0fqXlWj1ej46dJB7kz7grb92cmqMaVqoX10ht3vwYSSBbtZz7WXj2YkTd5n0gXX95A3rTwMC\npSs3t8ihYAcwbepWEhPNi2otW4bxwYd9Sot05SEWidh29iad64US7GMskl65Yhp0G9vRoc4pVNF5\nlpDm6FgvtFQLNzYtiwsPrTNnZg7pTmRSOul5prN1F7kT/Zpbbjj4/rUBfLx5P+1n/sz5ee/bvK6y\nEDvw21NpNKXuIa93aM5nOw/z17U7eLsoWT16CIuPnGX3B2/Q8duVnP/sXXR6vVW9YKXEaEOl1uVw\nN2srKUXXcbNiARSbd4znPIbQv4ZAH63nOcziuIqgQuXSkoALsD3uKJ81GG2yP1et5kZqIjXcPXCR\nObHsqv3uoayU1k/zsa/gSMCVOrXCOzAKn6CESgVc4TWNfEDvwIp11YnF5rxVqazitjl74m+z/tEF\ntkVfIcjZ+MNylckZXacd4e7+/BopLPPuZpt3If1fQ33fuSbPZWLb6YgSBLi6IhWLSVcncT/vBtez\nznAt64zZuJmdu6DV64meMpUf+vaj/lJBjjDY3fLryMRi0gtst6Y2eRq0cnJst2lrtcL38lFkCi+9\nuBidjer4yFEdSh8XFKg4emwmISE+uLkpmTqtP8eOz2T+DyOsBtwSvNqxqUnABcxmyk1sBN3sgqLS\ngAuwYryxhb8kL+vhbJwNfr7tsMnxv77/Crs/GW3zGsuif4u6+Lm7UqCuemcYvcFAvlpNg1mLaDrn\nJ1zlTtz9egpnZk6gfqA/c1/oSR1/H97q1BK9wYBGpyPTwmev0ReikBh9DoeE/U1L30noDVpyNfFc\nSv3B7JjewaYrOIlIjgE9WcVRlX4/lbbreS20H38lmBaQstRF9AkLJ0etYmzTlkxqaZ+3q9c5GlAk\neAfcxsN31zPJKGYmlykIiaSIRBWrunr6W5cDdBTFeh0JBdk0967Bq7Va0dDTfHnVzi8UqVjMnzHX\nyVQ73teu0hVjwMDJ1GvsSDhpccyiB7/xKD+BuXeEu7dab9l4z5bwitlYpePppeWP5vJ5xNucTt9f\n2kjjKw+knlszmnt14mzGIbNj5E8FbDIKC3m5QQMa+gvcztOxsRZfo2ed2nza3TYD5r33bc/8r12L\noWePeWbuEZs2mt8USjBmjPE1e/RoiEgE69aPZ9ffk81oZvZgi/oEWCzolcDTxTgb/+dLyzULfw/j\n53s95gmtPzZns5SFwYDZ7LcsSmhjXWevNNuXlOW4P155ZBYUodMbuP3lh9z9egozn+9Wuk+n17Pr\n+l1afrmMoa0aIxaJSMnNN9FvLoFM7Exdz1co0mXwV8xLxBecwkseTkvfSfQI+pE2/o6JMWWq7qO3\nWFNyDJUOugMC23Mk5ZLJtprunuSp1aQVFpBeVHUCGG5eK/AJirXrxmsPOWkDMOiNlBrvgIprRwiN\nFs9mg+0klvBuvc409a7OnOv7qLfzS3oe+omFd4zMCx+5Cxq9jqGhzVFZCYrlka7OZvrNpZxJu8WN\n7IcUWzmuQFfE5cx7eMqEZpQZNy0Xwdauc5x7qZA6bpHyXp25fNXoVzr7Dijlf5fFpDrmHG4Q8r89\n1wsaCB916sTVd9/jzZ2WvbscQXi48ZrLVr8NBkH+8aPp28yOkUoljH7LtqDOocMzGDasLRMn9a7U\ndV2JSuDCwzgzd4fyqFvXdi401N+LzvXD8HK1nA5p/5yxfXzvzLfAIBTP/rljuWB39FYkPebYdjXZ\n/OEIsvKLzATP+361xuZxtnD4TiQucickYjHxmTl88udBGsxaRINZi2g8ewnbLt6kqFhDp3lCsE/J\nzbfaGecmq45S4sNLoX9Rw8W++aol+Cga8Hp4xbz7yuJfEzH/+OQhvu9mvwe/bJNBeTgpn8fN65fK\nXoIJ8jLfpFh1zGRbedqYo9Coz5CbMcJkm1z5Ii4eXz3zjaEsRv6znq1dRzPl0g4WtbEsHF0elzPv\n0dq7PqMvfsVXjcez7vE+Pm/4lllwe/3il6xp/QlycdU57R55XL/0cYBLfxr7L6yycwOsvnqFSwkJ\nJk0QhRoNByIjS4trFUWvnvMwGOCzWS/Qowwt7uUhS0zodlOm9GPgoOaVv3gLuJF1GHeZH37yENxk\nxlxjTqGKiPgUYtOyGNlJmB1H3E7gww83mRzvqLZDeag1Wjp/voLz375v5srRc+4q0nKF2WyjkGr0\nb16PZqFB1A/2L9XSHderLZMGdDA7bwlK6GZv92jN5IGdaD1jKWqtlhs/TrbabGELEU9SiE7L5Ju9\nJ8hTqWlbqwYTurWlbS3LM/3Gs5cQ5OnOoamO60D8C7D6RisVdCNyomnkUbmWy/KwFHRFYk+8A24C\n1ivFFUF+1vuoi0z5dJ7+/yCRWlffsgdbNwuJtA6uXj8jlVVc09YSMtWFeMvt28QU6dRMuraQF6p3\n5lb2I94PH8riB78xt5FQbHpSlMaiB7/RP7A9LbyeY93jfUyt+yof3/yZ75q+Z3HWWRH820HXGq4n\nJdE8sHIi8r/++g9bNp+jfftwvv5mqP0DKghd5ggk3luw9F3en7gMlS6Ptr4vUV1pbLEvKtbwxR9H\n+XBAp1J78I+mb+PatRiT4ysbdO1h0d7TrDtu7txcFue+fR9XheUb9sZ/rrLgb3NpyxkvduW1Li0s\nHGEdCYUPKNBmU9e9rdm++MJ7BCnrmNht5RSpaP/NCsKr+fD3pDfMjvkPYfXHVOF18qzbvzDthrmn\nUlXB0+8o3gERVFXAzc0YZRZwpbKmJgF32X1hBvzLw5MOn1fhYt3AUad9RE5a36cFwuGAdaqQI7AU\ncFfdvcCqu6ZLnF8f72V8rReQiaXUcq3OttjD+CuMBZvqSj8WNJvEsZQreDm5E10gcEC/b/q+wwH3\n9SMCb/hSSgIxeY63u1YWa6J/tjvGXsCdvdu6t9dbT1MFqan2ZEQrCYMWbXJddFnvoE01Bo4CbTaB\nyjo08eqNTKRAVyZHqHSS8d2o/qUBFzALuFWJpIQsDu40cs2nDOzMrYVTeLmd5Rb8Xk3CrQZcEERy\nOtQ1V75bdeSShdFGzN5xxOR5kS6PXE0aOZo0rmUe4kSKIECUr83iQsbfJBY94lCSUZTqQXI67b8R\niofD25iLIv0bqKhpKlQi6OoMegIVPvYHOgifoBicFP2fPk5AIjMX1aksslM7WuwW8/DbV/p44d1D\n+Cvd2RF3FV+FG0U6x6qvLh7f4eppXu0sD436LBmJNclOs160URVfJzPPvCXVGmLzsvBXumIwQEK+\nMVi8EtwdjUHLzaxIEovSKdSpSSxKMzt+XO0XOJV2g2UtpgFwPzeWA0n2c1Q305PY1HsYu6LvotZp\nee/kLqtjdVaEesrit3jLPOwUVTIROTfJ1eQQkXvT7nkACos1jF4vdEWtOm3kUH61/wTjO7fmckxC\nqfZAWZSIo6jUtiU/9QVCLlmXNQFdWjcM6hNoU2yvZAyqI4hd3kIa8AiD+hhSv9Ol+1ykntRwbkgd\n11b4K0JNZmuOoGXLMJPnPx48zeLDgqZAfgUZBDcvRRMblcqyb/ZwYr9RIW3OsF7cWjjF7G/haPsi\nVCvfGUKbOqbL/+wCU5bI3TLNGdGpmRSqTWsQSokb2ZpUfOTVydKk4CIVmCquUi/kYmcyixPp6GeU\ns6wb4MuV2UI79ci2lQ+67f9YTp2N9n/b3+w/we9XbtsdVx6VqgjNaliVuRIpr9cDkTjC/lAHoden\nkZEYjE5rXtkum8edcGEjY8K7cDgxAqlIjM6gRylxPMcpd34Vn6AEvAPuYu+/Uqe5T2aStRuKAW83\ny8pQllDTzYuG3gF4ypWcS4kp3e6v8KaDb2M+rv860+q+yrS6r5KmNm8dDXUJIKnI2MFTz70m/QNt\nM03GHd9JpqqQYwlR3EpPQqXTEu7pi65Mesrf2ahzm1Z4zNJpTPBC0FAe5AndSGq9sRU0quAhtVzr\ncDnzPC9VH47OYHulkFuk4uVftuAklZCvLiY20zgDn9arE98fOoWvq4tV7uax4zPZuPEdi/sM2sfo\n0gchdnkLg/oYYuXLIA3FoDqMyEordQlEit4Y9Pno0gcgDXgE5TipvnLbPFsQfNYsebrN/NTYCXo2\nMpbtF28xpksrUnLzuRGXxMXoeHR62yWZxw+FDjKFUsY7H/UnNLwa3QdUnP5oDWveG8qthVNQOhlv\nKDGpxs9GLpPw6s9CsXLBgdNIJCIO3X5oco4azvXJLk6mjmtL2vgM4m6OwBzJUD/BYNBzKnW7yXhn\nJxl3v65Yg0YJwjctIHTD9yQV5qE16DmXZJkZU4JhrZrwaiVm1BUOukqJnDqu1vOZACumb+LKEcfv\nALtSV6N0VTCmqeOdYdaQnz2FrGTLBQ9Pf1MhnK+bD6FYp2VBy+EYAB955UQ7RGJ3fILikMk72hxn\nMOSTn236hdDqktHq0tHrc9HpjbPWnfEfcT5tXflTlCLcw5fhdZoS6GzKUy2fJvillbkAvAgRw0Mq\nZmWyuscQTj6JJiY3ky7Vw6jn5ceg0PpIyhRGqrvZd6MFWPBAYCckqxJRSoTUyZpoI4Oig08XnCUu\ndPHrSbo6lZOpR0hWWdeRdVMoGNSkPrV8vXGVO/FxH2NVes+te4zu0MIihcgRiKRhSHz3PH3cECT+\nSLzWI/b4GrGrfZEakVNLDNoodOkD0SbXwaC549Dr9uwxj1495zFntmV2hpeX0ZC1Y3hNJvZqT4G6\nmFMPHhPu70NhsQaJBRPLsgh7TmBvdOrdkP1/XqbYzmy/srj43UQaBAtawUnZAnsor0iNRCxm2/uv\nkpSdR3xGNmm5BfRtbCpc5OlUjZbe/anpIqwqGngILf29AkbT1mcwg6pbtzaqCI4nRKEpJ5RTz9uy\n5GSH7wSWRLh/5Vb8FQ661RT2nVy9Azxp1du+JKNWo+PnqRuZ3vsbom7Fsfbm/IpeTinURX+TkRiM\nuvAPi/ud3T9DIjX9QH3lrkRkP8HTyZkMdT7NvOzPPGzB3Wc7SlfLM6bS6yx3fVJJAK7KPojF7kjE\nRjJ8StEDLmVs4UiSbRnNzoFhNvdXJfI1xdR086J9QAg7oiI4l2w6E/B1dkwZrp670Pa8M2E7NZyF\n3N/7daaV7n9cIOhFnE4/wcvBr9LcqzUBCus+VfFZ2bzXtS01fQTd5MIyEoXBXh6E+njhpnDih8On\nrZ3CJgya64AexD4gckKb2gaD5iY4wPHW50xH4ncMifdmQIzIweLqnDkvYe0+YUmQZ+WJiwR4uPFK\n68YkZOXQvZ7jhW6tRseAoY67X1cGv00dya2FU0ppam5KOVkFRaw+cYlATzfC/LyIz8wxa65wk1qP\nNz5y2yuNimDccfObm7fcMtWudahx0vk4veJ1jQoH3UClfZ2BnPR8DHoD341eYXP2euPkXd5f+AYL\njnzGtJ5f8eXwJayYvsnqeHPoyM14nYzEYPKzrLceSmVNULpaFljuHiAs+cfU6czVDNvLCUfg7P45\nCtfxNsfkZdpPz4wPF/KTMrE53/B06kpWRr7Ekvu9WHK/asz37CFLXURusZpuwbWQS6TIxRLaVhNu\nUhUtqA0MFLqjptX9zGIBL8xF8Anr4S+05qaobAuphHgLwfbV1sJSL6CMzGDH2jU5FxWHv5srH/Wp\nhD6IoQhd1nhADCIZImldpP6X0Od9D2L7jAmJ9zZ0GS+jTW2F1AGj0RJ06Wq9trFq9RizbedmvcvC\nQ2eY+cchWoZWLBgpnraUK50rTx+MikrlyOEI1GrHmwZ2XbnDuO5tGLd2J7lFavo1fg4XuROHb0dW\n+joqC10FVkLvd29HZGoGAKcjzbUo7KHCQTfE2balyO4VR9i59AAR5x7wyfp3bc5eS2bDbzUSxGdm\n/DqBk7/bL+gUq46TkViTjMSaaNT2O8Q8/PbbHQPQJ6hqKF4u7rNxUli3jSlWHbG6rwSSp/m/su7E\nWcXxLLnfi/oefZgQ/hevhwmV2wJt5jNeMYCBk3EdeJBhnj8E8JIrWd1jCFKRmCf5ubzbuB11vfzY\neP8a8XmWJQdz1c+ep09XpyEVPxuTZVCTShZn9ano839G6lv28xJ+MhLv7egyh4HOjj23SImRiVOx\n99HVQuCVy6VWOwWn9u3E7SfJdPtudYVepwT9XrIszP3LSuv61PO/F4rS/v7uyBUypnxo3VOuLM4+\njKV7A4FBFOTpRqfnQpk2oDNHIiLp0zi8glf+7Oha3fGVQW0/79LUwn9SSKvrFkK62jK9Jv5BIr1G\ndQIDXNhn33VX+1Q2sNMLrfDwcWPF9E1sj7NNEcpIDCYv8w0cpWH5BNm3xPk34Oa90aJOQ0XwYT1T\nqtOhxHl8WO8ovnLhCyJ52tjgYmMJ5giSC/Zz5HEDNLos4nI3klZoWwS+uquQRw518+KNei3oHGRM\ncXgrjboW6UXPrjPsK/cj3LXqGC3WEJ+QaT5LE/sjdpuOoayjh0H9lPplQFrtNtq0LmhTrTcK6As3\nAmqhkFZBzJ7zktm2P3d8YPOY/o2f4+Qn4zj3qOKrNpGVHPDFC1G8Psq8tRdgxsfPs2b1ScRiEWqV\nhgYNHZtld3yuJt3qC9/jznXDGNutNXkqNddizG9iWr2eOht/IHTD9+RrbGvvVhYv1jJtrqnlYf03\nVbahpFmNivPDK1VIi8q33MlVo24Qzu5K2g9swfXjd/h0kO0c7aqZQuVy+EeDUBWqGTev6qzMRSK3\np0yFZ2vZBZh56xcuV8Ju3pL4eAnsaU4UarPYGf8RlzKMM4c0dTQnU5ay5H4vLqRvwGCoOEewPM4/\nGczt1Gkm226kOK4SVR7V3YwNBikF9mf0/xYuXo5mzIRfeWn4UqZ98hvzFx7gxyWHGDPhV5NxtyMS\nUKu11Aj25scl5poPAPpcwcdPlz4IXeZwpP4XKeG+SwMeIfW3bP9kKL6CoegvpP6V11se/45RhvOV\nYW1xdrasO3Lg1gNeWroZmURCSk6+1W6tyuDX9eNYueotsrMLWbH8mEkATkzMYuy4biz4YT+XL0eb\ndPE5il6NhHTS6FV/8PFA87pAnU0/oH36XX9+z/pKvYdd0XeZemav1f1NfEzb2PvWMNZ/UlQ5Vqmk\nb3VsxVf7KuZUU6mItD/JusfYmV2X+WjNOyy/+DVXj96mr/J1kh5bFktOjUunKE+Fq6cLO5J+YXjI\n+xjs0FwkUseWAd6BjufPbMFgMBDiXI1z6bdJVgl5nKk3lnEr2zGVIZ9AyzkfbfE1i9sz1DHsTpjF\n6kevEF9wnfNp69A+pVO5y6pxM+tvJtU9SDvfN/F0sj+r+PEnIZCcu2A+0yrQRJFfbDl/diu1crQb\nP2djWiW/2LLn23+Btq1rsXbl26xZ/hYJCVnMmNqfaR/2Ze3Kt03GPUnMKhVvd7aS05T4CM01Et89\nSHysc5PLQp+/CIPmKhKfytu6AAwfLlD5WreuxYQJ1lNW/ZvU5a9JrzG+WxuqebiatfdWBjqdnvnf\n7+PDDzYhl0vx9HTm3fd60rqN8Td44CmvVyoVo1DIyM9TWTudXez4wLzh6HKq6QQv1koqa9GNM7T/\nwzrXffLpPeyMusOqO5YbNGp7mDIReocIN4JrmdGcSr1jVRSqtp83nz9fMQdqx1W/y+BChmXaS1G+\nijO7rtDpRaES+lfKKl6qNp7RDabRfVh7Ptlg5KKOqv0BW6J+Ykr3L5l/8FM0ag1ajQ6DwWCzO8rT\n/xQZiUyy2tkAACAASURBVDWwJgshErngHWj5x27AQGReAhE50dzPjeNEqhD4Vrf+mFAX0zudzqBn\n0rVFLG85jXfrvIjBYGBdzH7eDnueKc8No4azbQdT4wXJ8PDdSU76EJPNeoMxRVO+GFb2/U+qewix\nyJgL/LDeUaLyzlDbzTY97cy5SB4+Subs+UimfdCXDu3qmI1Jzt9n4UgBKQUHgUUm27T6PE7Emuvk\nikVOOEl8cZaFIJeYplSOPK6Pu7wxztJgpGIPJGIlIsQgEiNCgggxItHTf5EIj0VSYQwSRCIxIqTI\nJJ4opIE4S2siFbuYXYM1TJyymV49GnD4aAR9epmLxbdrW5tjJ+6ya881GjeyQoUU2W/BLguDLh6x\na+VuWpbwb7X72kNmRj4zPn6er77Yxb69N3jhxZacPxdJw0bGm/2YsV3JzS2iTZvaPH6chp/fs/kF\nlses84ftjjkQ+4AlN4XGkD8e3eaVOqbMqaPxxgnH0lvnGN/QvtZzC7/qaA069OjxcnItFYeqClQq\n6Aq26+YQi8V8st7IEnB2V7IvZx23zz6geXdjkerKkdtsiRJaiRedmM3W7/6m4+BWwjnsKCuBkKcV\nAq8pFK7jcXGfbfGYG1mReDq5otZrGBLclQ+vLeFIt0X0PjmFEAsBVKPX8mL1zqSps3n70jy2d/iy\n1PDO4YD7FFKnNsidh6IuNPpISaXGPOWYOttY++hVnCWejAv/k/Np67iUsYXBwV+bBFyZWMGS+71w\nEjszzvUPpDYkLjt1CKdTh3AyMvL5edVx3h3X3UxspLbXB0Rnr8TNqR55xeYrg/TCU/g6C5xXAzqL\nARdAbyhGpU1EpbVcVMpV3yZXXfGCgz04SXzoGmJdZvHipSi2bZzAL2tO0qdXI3o/v4C///wA5zIC\n8J4ezuw/dIuXX2xFYVHV5AtFkqpZ2hsMRej12UgklvOGmeooJCIZHk6mZpI6Q3FpIdYeNv9ykk0r\nT/D5guF06mma1/TzdycvT8Xnc4wCQ+07mBe5rl2NYfWqE7RtVxsPDyUREQk0snYDqyA6B4XyINu0\nq/JBdhp1PY0398mnjWmDj87uNwu6P98+X/o4r9jxz1hn0NPKuw6Reebf6+xCFZ7OlpXM7KFSgjf/\npF3nVvYjJoU7Roa3B1WBGoUNF1vrMKDTRprxby1hTfQextYaxLx7mxgc1Ikrmffp4NsIrUFPfXfz\nPvHyKNSqeFKUTrib5S/TzZRkfr1+lSX9nrd6jozEmohESjz9jyKWWP9Slsx82/i+xqX0zaUFtSX3\ne5UprhkAUbltpvjn9AOkUjEd29uvBqcX/sP1FHPd1d5hQjA+Hd8DlfZ/L6buLAshzOMdgtyG2B+M\nkB66dOUxbVtbTksZDIbSVuCe/edz7MCzN+g8K1KTm+PlvRaJpDpq9RmUzuYKc+dSf8RPUR+Z2Jls\ndQzNfEYDcDf7D2q4dEAqUiIVK5CJbc/SszLyGdHL2PJ66Pq/4/D9LFh88yyLbxhvru80asvMlt1K\nn99MT+KFfcaW8j/7j6KVv+nvK3TD96WPY940bxiyN0al06CQGDvrXv/1dza9bdNFwupyvVIz3a5+\nzenqV3Uyd5ULuAAihwIuwPa449R2DWZ63VeRiaU09AgjXZ2Dr9zD5nF/JZxif9IFcjUF1HD2RyIS\ncz8vjr87mVKrNty8ZjPgAvgE2a8o3805iFgkQW/Q0d53NOkq09xxsb6QjdFvUaDNsBpsAQqLiuna\nuS7LVh5zKOj6Oncl1GMsMTmmuqfZqut4KpojqqA2QEUhQoJCVh1naTBuTg1wloXgqWiFi+zZmj9E\nIpHVgFuyvwSOBlytVmfTK60yUBXtRa/PxtnlNZTOw9DpklCrTuDqPs3i+Iaew5CJnYnOO0Izn9Hk\na5KIyNqOr6I+8QXnaODp2ITIqwJC9Xq9HnEV5IorislNO5oE3QvJpoykpr6mK4Gxx3dwY8SHVXoN\nZQMuQIuQyjdmVCro/pf4K+E4vz7+iz2dbava28PeLvORi03/4+wFXIBB1TvyUrCwxE4qyiBQad76\ndy4+jrbVa7A14hZD6jVAIa38f+uRpAVMqnuQpQ8EE8FBwV/xpPA2BxO/QSKSEZV3BqXEnbruls0l\nS+CsdCL+SSYTJ/S0Oa4swr2nkVd8l4wiY6E0MmsBrQO3UM25NzE5Ai9YKa2Om1N9lLJglNKnf7Jg\nXGQC71JnKOJ4jFHCr2vIGZwkVSeS9L/G862/ZOgbHRk3xbqvWkWhUJaIyOiRSsPJz1uIh5d1NT8P\nJyGF4SMXbqiuskDa+U9GpcumWJ9PvjYFV6ltTj0Y3Z4twaA3sOePy2xd/Q9ZGfml28PCq7Hyd8e1\nQqxh2MEtdAioSYfAUFr5V7eptftu43asuC1w+G+mm6+43m7Qil/vCnKU2WrV03Xgv4OotEzqBVTO\njBb+x0FXo9Ehs2EdDdDCqz6/Pn62CjBgFnAdhfRpTvWz26v4prHlTrPa3t60DAqiWKdj0YWzzOzk\nWDtseZxOXcUbtdaZ2UGfSf2F0bU3lSpRHU6az6gw+wR4J5lwHq1Wj06vR+5k/+NuEbCW0/HdUWmF\nLrBslVBsrOX1PgWaGJpVs2+1LhGZtk8+S8DV6At5nLeP5zyqJpVVVfhz41kO7LzKztNVXeQSo3Qe\nikTiT07WRLx9fkMssR48y+duFRJPFBJPh18tp4xVfFh4NdYsPsxfWy+gteFc/DgyhTEvLWXtX9Z1\nDzQ6nVWBIYDG2xaTV6zmUkoCi58WwcrCVSZnRHgTvBXO9KpRhw+adCgNugDd/1rF0DqNicvL5lZG\nMnG5pqyGsA3fIxWL0VqQXiybRqgMrsclIhKJ+O3yLZydZAS4u9EmzPEcdpWsFQadnkSRznqCuqBA\nzdGTd1m1/lSp8EhRUTF5+Spy7VBMrmXdZUiw6WwtMv+/bXhY//gAtV2sLyequbgil0hxc5JXOuDe\nyt6Du8wfLyfzIszw0GWlAfd06kr6BRlt1997bo/16/IXmhikUrFDAbcEnWucoPw8QSJSOhRwS1Dd\nzTGnC3vQ6PO5kmZbf+J/hYJ8y9/dwe2+ZvxQ+zrAJdBq7pOaZCz+FOT/Qn7eMnz9T5Cft8Tmsf5K\n+xon1lBYoOanb4zfn8eRKfyx4azNgAtCwdzWZGlHxB3OxFj/jd7JTLFb0MrXqFlz9zLzr/1Dn7/X\nUn+LqSD+49wsfrh2iu2Rt7iXmUqB1pxHayngVgWGtmzEyy0EYsDgpvUrFHChCme6W2L3MbaW5eKG\ni4ucoEAvenUTqqNFRcVE3Evk7oNERIiIjklj7szBFo89n3GTzxuaFnimXv+BLe3m4S6rnCpYRTE6\nrP+//hpNPAfZHaPWF3At80/a+Br5jDKxY3bgFUXP0Osci6mctTxAHa/JPMkTRERy1Xdwl1euxdpZ\napkpojcUO2TfbQm5OYVcPPWQfX9e4d6teGYvGEHHnvXtHwjMn7Wz9PGIt821HPo2nwNAbFQqfZvP\nYf+VOUjsMHKksnp4ei8HtIAUF9d3UCj6gkFDUeE23D2/oSoWy7evxbJj41nO/2OdP91rYDN6DWxK\n87b2+fDx2TmcjonFWSYjMTeXbTduc/rdseSrizkVHUv32pbz8ZVtcPi/hmUnzjOidcWlMJ856L55\ncRYSkdhqwAVYsuIoY9/ozJx5f/PFzBdQKp1QqTQEVvOgZ9f6Zl/KMZfmsLaNUEV9mBeLm9SZR/nx\n1HGtUWq2mKsp+M+C7v8VrHz4AmPrbOd0atX4xtmCWCRHJvZAo6+co4KTxJjzup02jY7BB032n70f\nQ8d6oXbPU6zPQ/Q0xVOgTcblqQGmSpdtEpDzNPG4yRyjarl7OLN60WFysoSl9ZfTfwNwKEAe22cU\nVX9rkpFf/ePcXRz+27wDcUCrL/jrzKc42ykWO8k7k5IYTrUgoVmlqPB3XN1nUC2o4oIqILAybl6O\n4cq5SP7YYL58HzyiLd36NmLqW0bnhYoyF2p4ejCymTHovNdecMbIUanoFBpi8ZhKmy5WMSQiEaPr\nt0ImFiMVi5GJJRyJjyQiIwWAWxnJZl1q5ZFdWLlGkGcOupnFOezubD3hr9cb+PBd4cv5+UfG2Vzn\nDuGcuRBp9iWPKUgkVZ3JqAsz2dJuHjqDnkGnhdzRns5LGXVhJnXdQgm2I7zzLFh2/QITm9u3j/8v\nsfzhQBp69sdF6kNm8bOpod17lMypi5EUFhVz4048cYlZHN7yAbJyFfnmAau4lDgcjT4Hmdh+0bE8\nREgwoKNQY369WflFJGblsv/qfcb2sk5Wf5j9OwaDnq2P2uIqC2ZwzR3kaeJwkwk/6jtZ67mZIVi0\n1Pd6jeY+jumr/n58BjPf3ci1C0Z2yKyJm5m3wrqv1qqFxjbhRi0EmuGovj+Snppr7RBeebOj3YAL\noCo6gFRWj9Skpri4jsHVvWLUteQnWaz96SinDpuLDIWFV2PSpwNp2MxyIARo0LTq2oY/6NienRF3\nLe57lJ1utk0mltDA25/6Xv7U8/Kjgbc/z3n64Sk358GWzceu7/UKNd08CXMXdBKe5OfScceK0v13\nR03FWWqs5Xx/7Z/SvHDUG+b/v5OadKDWRkG64FxSrN2ge3GmZeVCe3imoDv9xo9833SyzQ4ycRkR\nDanUNMB2bGtOZZpyXXjTzTzrlgbbre2/x00q8A31Bj0Lmk3jm7urUenUqPTFyERSPJzc8HHyIMyl\nOj2rmZvYOYqHWeksuHKa7Q9ucXqEbYnGfwuGMvMBrUHNzw+eJ9i5Kb0CBPpQsa6IiOz9NPIcYPH4\nU6kr6OJv+QtRUFhM/ToB1K9j3zLdQy7MYvKLH+ClsN/FUx5hnuOJzhZ+BEn5uwl0FVJIf1+6g1an\nR6fTm1m0ANzJ2sC9rE0U6/MACHHtSaeAb0v374l9hZpufXCRBtLM5z0aeo2u8LUBzFvxBj9/v5/d\nv10EMAnAlrBjk5HV8eNaoZ24VYc65OUVMfr9noSE+ZWmFwAGDWvD2MmOMRwUyv4olMY0VmH+GnJz\n5gJCXlLp/DIeXqYMntvXYpkxbj36p7nLZm3CWLf7Q4JqOCaA9DgypfTxp99VbaFySCPL7swl7bYK\niZT7r1mmw9nCxCbtWXZLaHZoFxCCQmIMYSVCTCX48NQeVvcwrsDHNmhdGnQPxD6gf826JuPLsidu\npNtRjwNc5JVLb1U66J5Ku8qDvBgauFfeUbc8Q+RebjRag46vGk9k5aPf+bPjjww9O6004A4+/QG7\nO/9ETMETPmswDoDDyefoE2BUeVr8cDOLH26uNMXsaKzQMhifl0NaYQF+zlXX/ucoDAY93vKa/Bbz\nHimqhwwK/oparkb1rv/X3nlHRXV1bfyZGRh6b6IgRbGDgqDG3sXee+/dWKImMWpMXn3tJtHYG3ZF\no7FiBVSwIFWQ3nvvzDDtfH9cmGGYdgcwedf6+K2VlZl7zy2MM/vus8/ez17Q5hL+jB0Nv9w/4Go6\nBe0NB8NI0xoZVRGIKXuOuDI/xJa+xFKn2zLn1lNTM9VcdwBIvXY5kaWhyK/OgYgIYcI2h5uJ/FmB\ng/EKsdGNzN8qNrrje3TGi/B4vItNlevlhhceh4GmDcbb/w3vpMFSBjes8E+MtbsDA00b+GatV+tv\nkcfqraPERlcZW5ZdFL9+EiwxrBt2jhe/XjhOsug1cIQz1vygPG9bGbr6S6Crv0Tuvsn9/yvWOHDp\nbo+teybD3NJQ7lhlfL/CS/zaooX6M5mGwGQwcGfkHDir8CIV8Z1rf7HRPRYRiO9c+0vtPzdkCha/\npL73z9OldUXMtCWFIiv97ikskgCA7MryBt0fHRpkdDeGHUR8OTVlHPdmHX51Xo2uxu1VHKWaCgFH\nbCxPum8Xb+cIq6HD0sL9fn+AK6zGhtADuNv3N4iICMfib0gZ3Ze5H2Ct3bAcur/io7A/SNJdwOPq\ncaQs3az2ed5np+No6DtcHjlVbu6h3+MI9BnaCe99Y5DwJQsjp3qghY2JeD+TwRJr5SpidXuJbkJS\nRSBSKj5CT8MMnY08MdBqLXRYTfMjcrWSlfQr45eglF8CLaYWKgSKp9b1F7qyK/6GtT5lpIZ2VVyw\nMautxAgOszkNAKjgZ0JfsxW6ma1GITcK0LRBdpVq7WU6PA3dhRGuOzFYQX+wtOR8hAclY/yMnli1\nVf7sYvKAvago44jP9zW587rxaWoZKQUoqUkXUxZ2qM+GsCM40q1xuhLdLRvX8YHNYoEnFOJYxDsZ\nozvERrkTqKuhiSqBYqH1be6DsPuTLz4XKhfObwxqp4ydSLiF+PJUPOh3FLf7HAIBwU+fj2Hsm7V4\nkNU4/VQPU8kKt5CIMPEt5cnosCQxsamB3+FyL8rzWRW8G9s7S9rjPMp6DQA47SHxROhSyedho5+0\n2PnZEfRKTevTy9oWAZmpcDx7UCY1hhCCswd9oMnWwJkDTzB8opuUwW0Ijvq94W42Ax2NhqG1nnuT\nGVxFsJlsDLYcicGWo1AhUO4RWOoNE7+OzP+e9jVEhA8h4aGQG4VrCT1xP3USIoooA2ym3RnXEnrC\nTr/pumY8Dd2Frbtl09xys0qwdNIxrPlhtEKDe/HPl/+YwW0q1i+QVB4eviDpRJEQk429P9zGCNed\n4v/iojIlY7uth0BFo1AAWOutOJWxsUxpQ6XJqfKW+7W0l9m2oKN8ofZaFnWixLpEhMj0TGsq1DK6\nD7L88Tj7jdgb1WKy8aDfUeyoSek6nXgbY9+sxd0M1Z1glfFnwg1MePstfuosHVMt5JVgmu1w6Gvo\nQkCEyOTkSRnqk4neGGbVsAWwzhel8yGXuXhgaOuGh05qcfaSXmTkVQvEP1BTSwOF07q7SU3XHbmp\ncTftA0NNY2ixtPGN2UClY51MNjboGjcS+yK44DAM2fYY1foaAMDFVPJ9YLMMkVrxAnyR+vqtdCkt\nrsS80Uegpa2JsdPkx7TjvmTh+lnqYX/ovGwbnf9Vykup76DnBKpycPXMkxjhuhOrZ56Er89nGBnr\nokdfajayds5pHN71NyoFHFxOeYLzSfcVnrfT7t+x8ModcGr61M32utXk965Tszh2Z6SsFCQAWOhQ\nIUGvobLaCEtqjKqnnXz5gLqNVj/lZcod01hohxcCCsJwJeWh3Fiph2lnPOh3FAs/bkdBdQnOJ9/D\n+eR76GjoiG/bzUYrHXqqXM9z3+OPOEq0+06fw8jjStrQCIgQCz/sEGdKTA3YBK+e/xHv/zWKSqNa\n12423T9Jcv9XpXU4u1u1wo89B6p9nlryqioV7quq4GL6kv4IehMH9z5OePkwDJ6T3aU0AJb734G9\ngSluJoSjvbEFupkrbsr4b2PCVl5tpqtp3+Bz97CgPGPvpEHoby0tiG+k6QAb4/7wThoEC+2u4jBE\nUzJt8H649nDE3lPz5e6vKOdi7exTYLGYePRxh8LOC03J4oO3cO67aXiYHINqoQBp5SWY0a4rrPXo\nSyr++p2kbfnbl1/gc4+qOtTQZOHHvVPRZ7AkZ7l2YfDpvRBs3DkePBFPauZZF55QiPebVqBaIICR\njjaqeHxcna9UFKZBMBkMzGrXDWwFFW8ru/TCs/R4uaE905q47qG+iuPt+ppaqOBXwysmGN+0oB96\noQsto3su6S54Ij5u9j6gdNyFHr/ifPI9sacbXZaEFZ+odtv9LNwwz34sWiiJt/4RdxXaLDa8ex+S\n2eef90lscE8meqOfRXeYsikvsYhXio9FkdjcYQGdP0eKzf4+yK9jJK31DHBn3CyF4yPyczDuHtU8\nc1p7Z+zv7ykz5ptrJ2S21XLp6EsMHe+Kzm52eHTzI4ZP7C5lcAGqH9lkxy44EfUe3S2aRiKvLtX8\nL+DyPoFbHYzKan8IhfJF5iUw4GTTNE/9mMLd6GC2TeU4a11q4bCCnwm+qAqvs7eIY73vcn8WG1kB\n4eBz0VlcS+gJKx03DGl1HE1RSHDh6As8CtqhUNiGEILJ/f+LZRtHYPJcxe16hEKRytxfdQhNoP4d\nMivKMMahAzzt2kFPk/7iaGUFF29fUulce0/Op1UEAQDfDKSkSJc4TlA4hs1igc1iYcaFe/Cwa4VN\ng/vSvi912OzaX6HBBSgdhkWd3BXuV7aABgDruvbGnk++8EmNUzgmPD0bJno64qao6qDS6EaWJmCh\nw3gwGfS+OIscJmCYVS+sCt4ttf1Nfgje5Eu6JQywdMdcuzGw0pZ4SrPsRmFma/nVX7VpYHncIvjl\nBeEPN8oL4osEmP/hJ2gx2ehvoTxeU5+AzFR4x0l0Xs10dPFulqy8YV1cLFpgf39PbHntg1uxn3E/\nMRoxCyULC8mlxVKdRed1klZj+3bXBGSmFmLnqsvYdXwuXj0Iw+CW3aSUqyr4PJyPCYKepiZENFvy\nEMIHjx+Nav4XVPOjUM3/Ak71O9UH0js7Sisvw0hvboOOtjWcjfQyagaTXnaFltHtZDIXIiJAeOEJ\nTHbwgRaLinv7pM/HoJaSkI2z6VLoabbE+9xfkMsJwbWEXgAYmOzwRHxMQ6hb+CAPP5/PCuO3ty68\nxbVzr8GplMTzLa2Ncflx4xaghHXKWjWYTDxLi8cYhw5qGd1J/Sh1PHMrQ9oGFwDtNLT9L17DQl8X\nHawa1x9QGfUNLuFHAsI0MNgeQG1fQmEuRBxvMFi2YOiMl3MWxSzu5IE9n6iGt0XVHLmt2LPLymFu\n0LDMJpVGt4uRbMcBVdjqtsCDfkex+ONO5FXLdqplMZgYatVLyuACkDG45QLZeN1vcVdw45v9ENUp\nmgCA231kvWNVzH4siTcZa2kjeA693mDT2jtjy2uqwoorkFZpGnRLskChp8nGL31kf7yt7Myw6zhl\nwAaP7Ybs9CKw2Rows6LSfo71m4ArcSGY084Nf3x+i3bGsl/g+IxWaIr6Hh22h/g1lR8sAiEc8ATJ\nIERScSNqROy0rcm3YqMLABW8eOizlctNWulQD9A+Lf4jtd3T1ktmrKPBaDgajAZPVA42s2k7Fyhi\n0EjpTIe4qEwc2H4Xacn5csfnZZdgQp/duBeg+oGjiI8x6QCAh++/wL6VCQo4lQjISsWENvJzYutT\nt5rO2VW1hnRd2rSnl+K1ZWh/BKVlgi8UIio7F6Xcahx5FQDvxU3X/1AGURGIIAkMLUkmA+EFgMHu\nBoam+qXsdeO6m94+woUhU6T2F1Vy0NXGGtZGku/ahYBgLOxDz+lrUpUxr/ggzHeS/IjP9diFpMoM\nrA/ZDwKCiTZDsMhB8fSkLkIiwpZwaZELAoI9LlQ31Lqet6qwhzwOB0v0OXU1NBE2j14lU33qTmRn\nPLwhfr3UxQPbaMaFreV4EXPaUQscOiz56mh62oNRyVW8YMmABqxMf4e+zhi5WrjxGbYAhLCx/Fvl\n/RHCb5SerkY9Q/g+ayKG2iteKKwrLK4OdA1uYmwO/Hw+w6OPE1zc7dW+Ti1ex1/h+tnXUNEIQAyn\nSn5zQ7o8/kAJyg9xdYKOlvr/HrW6EX9eW4HVs07Cc2J3dOtBT6+YqUa82qOe1mzvxcrjogTA9bgw\nTHfqKmXw6EL44QCDDZAqgFFXGoANUu0LUbU/WEbqiSbVxnUXdZQNU6y+9jeuL50hfn/C/wMs9Ol7\nvbSN7rHw91jUuTsOBb/B9p7yG7FpszRwMykU0x0lU2pHPRulZcIAEJjaBr3tpKuBWAwm+pq7ShnX\n+pVv1trmOOm+nXboo5aYonz8EUJNvZkMBr4sbHiS/cpuVLbEsdD3eJ+dDgaAqIXrpcoPG8PSTvKr\n61qaX0Z8hmSBTVOjNUwM1sJIbxbqPgqq+dFIyx0qFZPNKVoHQEjbkDaFgLmF7mBxa3dChOAKcqCt\nId97OrnpEjQ0NdBtcGdYO1jBpp36ba7l4dn9Z6nGp7cuUg9eumleAS+jcfH4S6QlyXqzli2MMGaa\nB6YvlBXBAQBOZTV0VJQDc6r56PPtMYSc3IDuK4+AraGBd0clzsDjj9HQ0dJskMH97/dUwUC7zq3Q\ntiP1eaYl54uNbkZKARZPPIqfDkxHv6GynnMHZ9m1hcfhsRjVVXl+/uf0HBRVcjCgg3zj/jQtDst9\nKenWH989hZtFK/w1Sn5WgiIYWkPB0OwIwo8Gg2kJiEoBsEB4b8HUnQOmZle1zgcAa12+we/hATJp\nZ0dfvcPZeZNQWc1DVFYeYnLycNL/A8J3rKN9btpGd03XXtj/6TXsDE3wNDUeI+xkp4dvchLxS3f5\nuYzK0NV0Qn7l3yjjvkMbs73i7Vs7LpI7/uyzj5g90BXt0geC6aGewRWIRPC8cxEANY1IXPKd2vdb\nyZd4LBu794FXVAgOfnqDWR27Yk9f6bLPLE4qWupIT+X4Ih6CiwPQy0y5ELkqnGyyQAgHDIZipbEq\nri8AgviMVnCyyURJxRmU1/Rqa9NS/W69M4fsx/WXW1DN5UNLm/6Pv6vVH3iRLGkM+TZjGIbay/ZN\nIyICPSNdBPmEISUqHbsf0s/traWYV4FyAQfRZWkY0UIy5fMJ/hmRoWnYtEh54Uld8nJKsWnReeRl\nS+u1uvdui/mrBqNdZ9WJ/uvuPsIfE1VXp9U1poRAyuDWbru7awG9G69DSVEl/J5Sn/XRK5K0u5ET\n3SAUirBuzmkkxFDC4P/ZfFPuQ0gokF5b8I1OVGpwhSIRAuPTcOdTJFYM7on7odFIyClAKacauyZR\nIbcZT6/LdIEIyc+Evdc++IxbhA4m9OLCDM2OUv8H0wgMnfGU6yHKA4OlfgbCks49sLyLrMOzdvA3\nOPsmCHZmJtjz2BfDOzshfMc6BKdmorsdvaIPtcILW9z7Iyw/G90spD0PrlAA36x4HOs9RcGRyunW\nkoqPWujRC3gvHOqO15HJ6GhribUn7+HI0nHQoLFCHJSTgakPrgMAOppZ4skk6VQg3/QkDLJVvbjw\nOiNF/FqDycT8zm6Y39lNZpyA8NFSxw4VgjIwGSzosqgpSGRZMNhM+YsfhHAACFFVcQF6BqpDHsoM\n1FH+WwAAIABJREFULgCYGKyCiHBQVHZIyjN2slFdW16fu1ffQSQiICKCvy4HYsKsXiq9N/F9ggUz\nnd7irhSECBCWuxrdrKR1ZxlMBnp4uiI/vRBO3eX/W8z9zgs5+WV47rUW919+hr2NKVZsv4HAW5vw\nJj8SlYJq2OtZwZxtiC9laehkKPnRdXFtjaehu7Bg7O/IzqDWG2Z7HsJVH0oHgIgIDv18D88fhEld\n0yf4Z6UpYWtmnUJ8dBbW7xiHkRMlhj6jpBS9HVqjsKoKZrqSMlS3FUegr6OFiX27oL2tJQa4OEJP\nmy0Wng85Kb3otvfGKwxxdYKlsfrKetOH7Ieunhbuvv1RartmjcbyyEnd8fp5FBauGYKOLvKFb6rq\nLAre+RSJ2Ox8aLJY6GBtARM9XbDqfTYsJhP92tsjt6wCd4IisWpIL1gY6MHaWBICqm9w6+J5/zw0\nmEzEzNkEDTVnslIw1WsiW4uyMEd8XiFM9HQxuXsXrBlEZdnQNbhAAyrS6htcgAorjLSlp0dan7SS\nQ+AL8xGZO0P14BpYTCYGubSBnaUJjq6YQMvgcgUCscG9PW6WjMEFgIU+d5BcWqzyXNFFVIrV1HbK\nBaTL+aUIKHiGahFXbHABoIxfDFO2BT4W+ckcw6t+CwZDj5bBpYupgfTUpyEGFwAmzv4GNnZmSE3M\nQ3ZGEU7sf6z6oDp0q1dSnF/1SkbXAQA69GwLR5fWGLdSVizm6GV/zJ/UCzvWUIuug3u1A5crKevs\nbd4JLsb26GBogwdZH6QMbl0uPvhWrI1QkEuVMvN5Avy09oqUwd3yn0l4GrpLZQ7uqMmUof3tF+nC\nAe/wKFRwq2Gso4MqnuQ+j6waB//Dq7B6fB90dbTGumP3AADrJvRBdFourrwIRiVXMqO65ReOA8vH\nQF2mDaJUueob3LqMmeqB/acXKDS4ANV9BADuBkdhsnsX/Dh2EPq2s4e5gZ6Mwa1LTFYeSjlchKdl\nIyG3EPnlinPYZa4pEqHtpQNS3Xz/F9g32ROT3TpjeCcnVFSrH6f/13uk5VbcAkBQWa1+BVYXO3or\nqgKRCB0uHMGKrj3wfQ/lnR0+5mTAwUh5qlFsESVP18tacQ4tAUFw8VtYabdCeMkHZFQlYZ79txCI\n+NBjGSC2PAKaTFkvkck0QWHeCGhq9QKLaQU9A3oZFcpIzpas4NpY3GnQOd77x+LulUB06W6PO5cD\nUVVZLdajpQtTTmzYN9Udg+1ldWgnrpMfplo7dwB+PHQfUzypdYPH/lGYOEwSs2MxmGihTS1M/txF\neWxw7LQeGDutBx7dDgJAeX67/2xYWlxuliT8UJBbBnMrQyQXFmNM5/bQZ7PBYjBwPyoaM1yprIfd\nV19iwL42GLblFPwPr0JiViEAYNYQN2w6+QDxmQW48DQIlsb6OLJyPKYNUD8uuXnpBZSWVMmEC2I+\nZ6h9rtpc44nd1ROj72bXEs42LWBuoIuBHR2x76E/PGo6LRzqOxrjHTpBg8mEkBDs+vgCl2JCZM5x\nIOQ1rsWFIWCyrHLejKfX4WRkhlb6RrDWNYC1niFa6hmghZ5B4zxkAIKadE1F52lnZY4jLwKwYWgf\ntc77rxtdDxsq4b21sfqxVbqU8appC9eoMrgAkM+hjE1bE8XVWAwwMNRqAtKrktDFyF28CKjB1ISL\ncQ+cTtqLNW1lNSI02e4ws3xG617pkJztCqFI4r1zecHQ0fpGyRHy6TWgPXoNaI/92+5gxAQ3OHe3\nA69agOS4XPyw4iJuvFKecK4IIeEiqeRPOBrTe7h8DE9BVl4p3oclw62zLT7HZmHsYOkZh7IGh/IY\nPcVD9SAV3DgvEUoyr0n9YzEZcKj5jky+eA13FkiKbpwdWuBVaAIOLBuD268jMH1QV+QWl8PKxAC+\nYQlS4YVea4/i/VH1Zj5Xz/gj4lMKfjowXWZfRHAK9PRltWqV0dACjzHdOki9b20mKSaY3EYS42cx\nGPil5zD80nMYpj65iqA86QdDZkUZHC/tR1IdHdxabV1lYYqmwlxHD5+mrZHZ3s1W/UXef76f8r+A\nqbbqljYVPGqa4EjH6NZUsDkYqU4Yt9V1lMm6YDO15BrcpiYx0wkCYa7UtkruC3B5n1BedQcVnAcg\nUNwNVh4aGkx09XAAk8mEUCiCXVuLBhtc8X0W0++91r1La1zcNxejBnZBXHIeUjILMWP9eQBA72mH\n4P8xXsUZGkZ4ULJYr6A+h3beE7+eu0KyONraRGJg6hpcALAyMQCDwYChnja+6WSHiX2ckV9Cfa++\n6WQHtxVHkJJbjLIqLsb0VC90FxQQj8snfPHww3a5mQgRn1JgbSv9PX92PxQjXHci+J18TWGWRtOY\nipnfqPbYvUfOlisyLiIE9l77UFYjIlVb0rvFbQAmt+kCV4uWMGDTW2NQlwoFPd0GtadfYFLLv+7p\n/q/w8zsq59VcR3W+XQGHKhQw/Er/wE1BScVZiAj1I27TMgaJWZTHIRSVQJvtDp4gCTmFEoU2Ha1e\naGV+HQyG8r9p466J4tfqeksA1RmYJyyU2Z5edhW2hsp1M8oquODxBVjy4zVUVlXjr+NLcfD7ibAy\nNwSnmt+gVCq6uLjbY8qAvWId22Fju+G7XyaCEIJn9yXhkTnLB9I635bpspkrLUypRaatMwajlbkh\nJuy4iMyCUplFNWUc2nkPmmwN+IT8rHBMRHAKevR1Qnx0FsKDknHz/FuUlVLf6R9XXZKbvSAS/bON\ndlgMBlLmb8W2989wNVY6/ORy/TfcGDETIdPpe//vc9IQUZiDiIIcfC7MRmp5ieqDamAyGCoF169/\nDMfMHvRCQAwVid0N/qS5XD5CP6fhU2gKPganIC1D9od25fQS2LaiV174tbE/QxVY0AlDqDP23yC3\neAPKKilREyo/l4G03BGo5n+GpoY97FtIOiAkZraDiFSI3zMY2mjTKg6Mr/Q8JkSIFyldZLYba7vC\nw/raV7lmUxIUEI+f1lyRu69dp5Y4enW53H3qEpWSi872VvD8/gy6tmmJfUtVp5zt3uqNbftUd4AY\n4boT0xb2xdhpPTB3pKQAqbWjBQ6eWwQjY12psQCw99R8uPZQ7dVllOyFjmZHmNHMRKIDAdDl6hGZ\njr/Lu/TED90HNtl1wguyEZCdioDsFHzITYdAJFIYVth8+wkOTJFU0HbccQT3Vs9FeyuxtozCGFeD\nf1kCgQjvghLx8Gk4YuNzUVwiu6jCZmugg1MLWJjrw87WFGxNDQiEQgSHpaKishofg5O/qtG96v0e\npy++xvFDc9C5w/+uUpf9mQP4qdcgLHFWLNJBl/S8seDyggFIZymQGq+XEOkvbptWccgsmIUqrl/N\nfi4SMlrDwngXjPWXNvp+6sNgsDDMIRqZ5d4o40WjWpALBoMFZ4t/v806nUo4jz5OeBq6Cyunn0BS\nnLTQdTc1tAxUcfVlMPYsHgWfvUvxNlJ1c0oREWHytr54kRMFvkgIOz1zdDJS/J1vaWMKyxZGeBq6\ni1bhRnkJvTLw7LKTcG+dQGssXRgAomZvgHfCZ2wOkGTMnIr8gMDsVDwYI18FTl26mlujq7k1Vjmr\nlocd4yKJVd8IioCFgV5dg6sUtTzdQWMOQCRnvJ4uG+NHuWLYoE5wtJdOaF689iKGDuyEmZPV77HV\nFAwYTUkC+j9S3Ohvzwc/nI6gVrDpeK+T719DcG4m9vQbjlkd1F9Vrkvni7+Liy1C5q6hFX9WRHK2\nGwTCHAAMtG2VJBUqqM3R1WC1hIP1J5lji8uPo6BUWufAUG8mrEzU17SoJSgnA1PvU2l6b2cug43B\nP9MSpiGsnX0KA0Z0wZR59FaiYz5n4Nt5Z2S2a2lr4uzdtbD8h9rfXEh8g4VtZKvgHmSEYqyNq5wj\nKO/1+I2VtPQUaj3dNT+MVqgpXEtK0VYQIkAFLwzO1o3T1FaG282jKOJKHgKvJy1HawPlal9fyiLR\nyVB2hqUOrr8excUFU/BfH3/cWDoDFwKCMc3dGWOOXYLvJpnWSgqf3mpFx/+6skr8eujATrh3dTX8\nH23BY+/1WL5wgIzBBYC8/DKcPO+nzmUAABFRGVi85iIAIDm1AD/suoMBo/cjUYGgiCq8rgcq3Fdr\ncOlSqxz245tnOBGuur+WPO7ERcL+zAGp6ja3y/QXlOqTkGkPgTAH5kbb4WSTqTA2q82W/5AwMVgF\nW0tptf+yyusQiRS34wGAYd7nYX/6AH59R6ky/R4SCPvTB7D1tQ8i8nOwr78nkpZ+9z9tcE8eeIK4\nL1moqqSXc5mdUSxlcK1aSn7w1Vw+5o48DE+3nxEb+XVEsOsiz+ACUGhwE6KpyjO6Aja1lBar9nSL\nq57DwewQIFcZj6CMG4C04l0Iz+qDz9mDEZRmr9Y91BIyfS1+8pBIEfT/6xRKqpW3Q8/hZuNRtmqd\nEWWcmD0eXW2tsW0UFY9vZWKIgQfPwHfTEuSU0u+pppbRNTHWg/+jLfB/tAXbN4+BibH0olNZOQdr\nt1zDgNH7ERVDTW3b0eg6Kw+XzjawszXD8ImH4WBnjtEjqPzGRWsu0D7H+StUbT2LxcSgfh1UjKbP\n+LaS1eR9H1/D/swBuF4+hodJMYgpyodAJPuly6uqxJmIILQ5exD2Zw5gk/8Tuee+HadevrJIVIr4\njJbQYLWEk00WTAyUt4XW0VLcKVmb3R0O1tKLFoVlsp7ux+wM9L1+Gq/SkvB8KlWqfTWaKihY50Zp\ny+7r74nFzu7o1dIWva+dRGBW06X12J8+AM/bF5vsfHevUb3WLKxUN3cszC/HgrG/id+PmeqBS482\n4LafdLkyIQTr5p7GuG/+Q1sQ558g0C+mQcfxqhVnuVTywhCUZg+BqAhhmT3RsQWlpcAX5uFTelvk\nV1wDT5iDpMINMNebgq4tA9DWvFZzmp50aX2WdPLAu6kSJ7Dbjd+VjAY0GBpgMRq3TtHToTW6/Pw7\n/ngZgMVef+HsmyAEbaNSHZddvkv7PI26i/U/3MDhPdOxdedtZGQV4/rZZUhKoTxRe1sqP5HL5WPM\nCPkN/1SxY+tYDBi9HwNG7xcb+7nLz6KaJ4AWW/mtFxRVwOt6IKytjHDjfNMsbtSlNgxxOiIIez74\noZjLwZqXjesLNcaxA6a0oz8FSsxsCxvLe2pVmLFUlEVqsKzgZJMlDkcwGLJi0T2sbfB2pnQrpUMD\nqWKG2jnVvMe3Mbi1I9qbmsNv+lJoazTdwlzKss2wP30A9qcPIGVZwxcz+TwBxvT8Vfx+4AjFn71I\nJMKYHr9CKKSMhJa2Ju6/+0m838BIB09Dd+H1s0js3uot3l7N5cPT7WeYWxmKS40bww3fMMwYRF+u\n8MTbD1jZV/Kg9b74VsloxfCqFTdz1GN3g0frFERmD0dn6ycITu8Ad9t4aLIsAQJY6FPpcmyWNWLz\nZkMgKoGl/mxY6s9FY7JWrXUNkDJ/K3rfPoGsyjLYe+1DwtzN0GDKnrO/ReN0TgCqe3nkz9+K3z+J\npLRLKqt5mN2zG6aduoZbyxU3QKilUcl3m9YMx0+/3sWBX6bi+tllIASoqKzG3SuroVcTmK/mCdCx\nkSpRvXtKNH0vn1qi0uACwOS5VAseOgb3zPCJKscoYpmLB1KWbkbK0s3wm74E37r1VhpfYjIYcDAy\nwWjH9rg8cqr42JSlm3FsyFja1y2vuo02rRKgpanaSItEpeLXbE35vaHq49gyCgBgbrRD7v7QvCy4\nXfoT9qepTI7RjpT4Sa2Xf2nUFCzo4oZqoRDdL/+Jlc8bN7X7GtQ1uAAULiYJBEKM7L5LbHD7DOko\nZXDr0n94FzwN3QVtHWltjYLcMnh2/7nR97z/pi/tsWnFJWhpJO2983jq5WXXkhirvDtuWKYHuIIU\npBf/CndbSa50S6N1EBEuYnKnQUSqYak/Bx6tU5Bf6Q1Lg6ZZAAucshLLOlPx5g5XGrYGsSBQOj6f\nzy3HpaQApceM7NIeTyLjoKfFxnQPF1oGF2ikp1tYVImxIyUxwi07qCf83t+eYP8uSvyGy+VDIGzY\nFKKWDSuHqR5Uh9gE6guy9Vv5XSjqM8yuLT7NWUUrR1cZ9oYm2NC9DxxExpjgISmXjEjNxp0Pkdg1\nTb2/QxkGuvTFhSo4PuLXbA3l4uG1sJgmcj3ouOICDPeWDvHsHyBpWVTrZfS+dgpaLBYMtbSxvGsP\nrHNTvwrua1Ib21TFf7+/LVbo0tBg4ZbvFlr5yX8HbsOckYeRnyN54BERwQjXnY3uGHztZQhmDZEV\nWKqP18dQRGbnYrxzw3RR6qKsdDixYC2YDD2421JrIyJSDWbNmoK14QqUcP3QweoWcsvPQ0uD0sIg\nhAcdTfUbJCjiR/dBmNrWGcP+Pofz0Z/k6uAqYk/kA4QVS4e/kiry8SInCvMclS+sbrz1CCO70HNk\nammU0T1+1heH90zHqKm/obJGoHnMCBcsnC3pjcTh8sRiGerypSYubGlhgGETD+P5XdWdZb3//oRj\np1/BztYMZRUcnL30BvNn9Yamgl5XtdAxuC8iErDxwgP47FiMliby438xWflILyyV2sbW1ICN2b+3\nkFTJfSp+3Vht3HYmVFrM5HZd8GPPATDT0ZXaXy2kPKnAWcvF7x8mxmKj72ME5WQgvVzy2TQmNKCI\nlLJi6GqwYamr/N+zbUdrjJ7ijke3qUyO+mIv0RHpWD9f0gWkvnoYHa482Yhv551pkNaBMg56+6s0\nutG5+XCyMEPnFpb45akvdowYJKUlrC7KPOQ25lSz2szS39DKaD2C09vDo3UKAIDBYKOw8h4qq8OQ\nXXYSbJYVirV9FJ6rMTgZmyNl/la43TyqltF9mh2JVrrSFXq6Gmx4tlQuaAUA0b+o34KpUUa3tJyD\nmLhsgMHAi783yTVs1dUC8AUN6x+/9efbaO/UAuNmHsWBX1Qnfc9dfk5chHHp5GIUFlVg0tzjuHzz\nHYYO7ITtm9VXaapLJxsqHmptrHjBJTwlC21bSDQZuHwBnoTGwLl10whxN4TKmhzcpmSpizvMdHRx\n9UsYjod9wJuZy8BkMLArkBIqn3r/OhY5d4eDkQlGObbD5HYSz7+QUwUjLXrVbB+zM9BDibBQfewN\nTWB/+gAYAG6MnYGe1oqVs9ZtGwu3Xm3w63c3sfOwtMqdRQsjnPJeDfu2DZMGrOX3S0ux94fb8PWR\naAcXFZQjODUb7u1sYWIgmyLotuIIQk5uQFF5FYZuPqVWRVotxjramOHmAiEhmNSV+uw/vFHcaLEx\nxObNRXvLy2CzrFDFi4YeWzrmbKjVE5YG82FjLEnbdDCTzsv+/CERFw8+pqQ1vdc2qrOyOpVqANBK\nxwTX+q6AgAhRwK1ACx0jtNA2QiJLVcPWhtGomO7N88vh7mqPx7e+VehJcrl8GQFkOogIQVk5F7Hx\nORAIRejmrPjHc+qCPwaM3i82uEf2UCIfZqb6eHWfEtJ54fcFa7c0ruLpl1svEHZoPbzfRWDKgctI\nzZeVgSyq4CAmMx9HfagUNTaLBX1tLfRsq/j+G0Js6UPaY20tHwGQ7ofWUBxqYriety/C/vQBbHv7\nnBIjOXMQv4cE4lo01YfLe9xMjHRohw6mFjgW+h6/vHslPoeZjq7cxY76fCnMg1eUrOqUKn4fPAYE\nwPQHN1SO7TukE56G7oKJmT4+BMTj8rnXAABzS0OVBpdufPT7/06R8pJLiirx47knGLL5JG75UZ9X\nYRmVkiUiBCEnN2D5kdv44exj3P91Ia1r1MfakCoprqsLa23T8EadyijjUmI/5vrToMvuiE4t7knt\nVxS7DXkbh60zj2NUm01w7tkGh7zXopWDBbwOqScZ2hASynPxIIPKuDncnerf5v74Z3i+oh4GFtoG\n8M2N/irX/uqCN0KRCAKh+p7ukHGSJ+HjW98qHDdl/glcu03lyi5fOAD+j7bAraukU0NddaSIqIZN\n85LzijBx3yWUcbjIKSnHtN4usDEzwtg9F6XG8YVCiAjBsqE94FTj7TKZDCwd0gMGOloY+usZlHPk\nC2eoIo8bBY6wGMGF5yAkfLzJ3Uf7WC3NjrBvEYiW5vLLV9Wh7gTV06GdOESwo/dgfOvWGwcHjkRL\nfUMMuUV1Z3iUFIs/Q9/jQ3a62tcadccLVrrqi3aPb9sRLfVVp38BQGpyPr7/9iq8zvihZx8nXD7r\nT/s6xUWVWDb7FADgjW80SpVUba3fMU68uObYrgV+WzUeISc34F5gJEITMuH5/RkERqXAfeVvKKvi\n4uDysdBgMWFjIbsoO9SNXly+PnZtLKFv2PDiG0WIQwlQHsKrj1vfdth3fRWGTpKEAoZN8cD8Tep3\nn6HL3XSqWjO6NBt7oyjHpYUOFfpb3X4ItnQehfmBZ9Dt0Xb458YgMD8Bn0sycDP1Axa/P4eXOV8a\nfQ9fXfBGW0tT7ZhuYVGFWGBj8Vz5yd+13PZSnpcKAA525khOLVDrHuryKSEDd7fOAwD89T4Sk3p1\nQUhSJhYMoryX8JK3sNfrgL8zz2H1CEpxy7ObbCuTF9tVl9X23XYCZVVcRByRnlJaaneGV4InjNg2\nMNK0RSfjSVL7PxacQA9zxZ9FVqIW7NobwOdqIJKiMrBqzzS546rKudA1UDz1X9SlO/5OjEbwXGkp\nxvFtqMWak2EfEThruTilCwAiFqxTWxyo9zXKmOmx6bcXr0vtPdSnuKgSxiZ6qHUAU5PzwWQw8OJx\nBIxN9HDw+DyV5+bxBPjrxgd4X30HU3N9vPT5jLbtWqCqslpKt6A+fwduw+QBVDuq+++isO38Exxb\nNxEaTCZYLCYef4zBp+Pr4b7qN7S3tYBr21Z4HhyHzvYtkFtcDte2VHeC7XMaviDr7bsFV07Rf7Co\ngicqQ3LZ37DS6QFjLcl3PrnsHhwMJyC36j2sdJWX1eroauG/ay/h9cMwaGiw8CBe/UazdRnpsBGD\nxrthy2/SesqB+QnYFXEPuyIknni3R9ulxsx37AtnYxvY6JrgUWY4eltQi33OxjaYbtcT3R5tR9ho\n6awXdfnqnq6ODlvt7AUzU4l3M29G41e9Lx5fBP9HW8ShBnWZ2tsFLhuOwGXDEbQypTyokkou1o+h\nHggVglKU8ovQRl/9MsPa89bydrdiw6nDMkZfqy0o5aWht6XEKAfkHYIpu43C46I+JuLOiRcAAA1N\nJjp5KNYIePtIVlC8Ljt6D5YxuADEC2q1YYO6i2RdL/6BB4nqJeV3taCKah4lyfZxq+3u0cZYuW6H\nvIU6E1M9XDnnj9yarIIe3zjBwsoQF7zXIC2lANYt5U/Bjx/2wfHDPhDwhWCzNTBjXh8Ym+jhzNUV\nGOLpDDtHC1i3Uj19v+NPFVEwGQz4HV4JfR0tbDr5ADd+moP0vBLM2XsN84e7IzGrEFumD0LvzvZ4\nG5mM0ARJdZuBbsPV7ZhMJuatHISXd4OVjrt0wldcAqwMNtMQLfX6g1Gn8IAQIewNx6GkOhYspg54\ncqoaU+Ko7JHfvr+Jj37R+OHoPDxJPowVO9VP31w37ghGt5X8th8nHUJpkawWzJqgS/Bs6Qy/YT+I\nDWcPM0eEjf5V/J9X0lt812kkdnebAgd9C/weI61t3ViDCzTQ6A48KFtzrggttkaDVk3/PDgb275T\nrawkD6FQhI9RshVQDRViriXiyAakF5bCdRNV/VLblrqn2XDY6johk5NE6zx+kRLNUnMD2VX2+l5u\nLWNs/wRHUITu5tJ13n0sN6GtoWxrG/H17n6CTk2aU0d3RxiaSl+zsoyDzCRq0SDEPxrPb77H1A4N\nyyyoW9acsmwzuphbgQBY+/IB7E8fwJqXD1DEla9LW5cTwyiVqqSSIpl9w7wp/dzuVvT7UtVl7pIB\nsKrRRtDW0URKUh5GD9iDhcsHKaxKW7XRE6s2ekJDUzKF1tBg4vCeh9i85jKC3qkn8rJxan8M2nQC\n5598RI8OtrC3MsHn5Gxc+3E2IpKy8XTvMszecw2aLCamDeiKRZ49kJJbDI/2DV8biA2nfhPJNU0o\nBQIh/B6GyR07byX9YoICTigSS2/hWTq1lpJR+QoRhb8hu+otynnJYEI2Y8a+Jnd//d7p6N6/PYiI\nYPcqL2Qk01+8+uRPPcg3HZwJUR3HjsFgYPcl2fz8kFG/YK/rNBizJbORj4VJSK7Ix9t8apFxSdsB\nCMin8oxHtXLBhcQ3MudpNIQQZf/J5bjve3L2TRCZf96bZBaXyh0zb8VZ0n/UPtJ/1D5y826QolM1\nKf+9+Jw8DvhCLj78QIK+pNI6hisoJkIRT+W4aQevkPyyCvF7n9BYcub5B9r3FpWWI34tEhHyIOiL\n3HGZRfI/zwp+LgnIPUzupMwjeZwvpJAbT3I5n8X7z8b2V3jtY9/fINVcHrl84CE5uvU6KcgukZy3\ntIoEPgkj759GEEIIef80gnx4/pmEB8TR+rvanDlIXL2OEUII+fXdK7Lh1SNCCCFCkUg8Jq6ogNid\n2i/z386AF7SuUZ/owjxid2o/qeBVy91f99p0OHrwMXl0N5hsXXeFEELI6aPPVR6zYOoxkplRRGK+\nZBJCCPF7HqnWNQkh5EN0KnFbcZjc8gsjJRUcEhiVQradf0IIIeRjTBohhPqu1DJz9xW1r1GX72ae\nINlphcT7jB8Je5dACnJLiUAgVDi+qoJLhnfbQYZ320H+uhIod0xcyXUiIkLikzZFvI0vrCQRhUdJ\nPieMBGRvVHj+68eek9yMIvLXWT/xtrDAeJV/R2mR5He4eOAemf3fTT2q8hyEENL14U+k68OfSAG3\nnAhFIuL2aIfcMdGlWbTOVw+FdpWW6/focyzG/3kZIWlZyC4tx8qBPbG4rzsuLpyClgrSp04dkcTG\nJo9Vncit8KGghqTvyN6dMLJ3R0Qn58LKlN5CCptpgEqB6jJaj7a2SM4txp47r3D4/mvEZxdgyVD6\nymn77vqJXzMYQHphKf58IivC4/nLOfDrLDxmc8LwIH0l+CIOXM0WwFLbGYF5R3AvbRkstakuvk+C\nAAAIfklEQVRwRkDeISxupzxO53M1EHO+G401e2fArI4Clp6hDrr2aY+smvJtTmU10uNz4NJb9WKN\nb1oSBCIRHk6i+opFFeThSyHlqUy5L8kUcTIxQ9RC6cVQNouFld2kdSAKuaEQEVnRmUKudAZDB1ML\nLHFxh56mbLw3Oj8fm54qzgMd1W83ZoyRhHMqKrgoyCvHsUNPsPf32Zgx5gjmLVHeR+/bpedx4dZq\nWFsbi7N2WCrywOVx/90XBJ/YgKkDusKopoOEbo0Qe61HW1dpMiatcSlMLj0d0cLWFBWlVago48DI\nVE/p7K9uhd7E2fLDfJ8L/wADTIyw9caH3J9q7pkJZ9M1qORnoL3xPEQVnUJk0XGp4wR8IWasHgrL\nViZSspHmLYwQ/1nxouujK4F4cUeiknfW9weMctwE75OvEOATgXsXXiMyKAm7lp5T/mGAitM+HLQR\nZlr6YDIYEBIRPhTIds64lfpR5bnUQplFlme+C8oraZv64pJKMn/lOdrjC7hJ5H3+efI4Ywf5XHyf\nlPFyiIgIiVAkUHiMiAhJVPFDyTXLqohIRMjnBHpPp9TyJ7TGXXj1iRBCSF5pBfHY8gdR05kizusP\ny2y7+TaMOK8/TCbu8yLrz90ni495E+f1h4nz+sOEJ5D9m73iRxBCCCnkJpIyXoOevoQQQkL8o0lG\nYq7UNpGQ/h90MTKYvE5PJnan9pPJf18Vbz8a8k7sxZZVc+UeO+vhTYXnjSk6RUqqY0hM0SnCE5YT\nQggp4yWRsuoEUsXPJv4Zc1XeW1xhAdnx6qXSMSFBSVLvt669TM4df0ke3g0m50+8Unrsda+34tdc\nDo9s23iNEEJIgH+MyntrLL3X0fPg5BETlkqSorMInycgYe8SiNdhHxIbnqbyuJ/WXiHDu8l6gI3l\n4ZUA8etdy86LXwsEQrJz8Vnl9zT/lMy26JAU8tdZP3Jm933y11k/Ul5SpfY9cQU84vpou9S2NR8v\nE+/Uj2qfiyixq2oZ3XXXH5ADT1+ThxEx5NCzN+R9kup/NHUp5+cRv5zfCSGEvMo+SAgRSRldnrCK\nRNYxsgll/oQjkD8lp0MVP5eU8VKUjhEKReRWQLj4fV5JOXFef5i8iFA9FarlXazicEdESja58OoT\n2fuXLznh845EZ+TJHfc880dyL3UpyePIhibSKgLJ65y9tO+nMax+/jexO7Wf2J/aL7X9QUI0sTu1\nn0y7f12t83EFRSSv6j15lT6VFHE/19srIoFZK0khJ4yklN1Rep7wnGzyLCFB5fUyM4rI51Dpf48F\nU6kQCZfDI5OGH1B5jtCgZKn3Pg9CVR6jiJyiMqX7x28/T1yXHxaHHhpCfp2QUnJsNon7nE6eeqs2\nJiKhiFRVyH+A1ufaaT+ZbdfP+BNCCAn9kEj2bLlJkmKpMNuCfr+KxxzcdE3qGE/7DbSup4iUihyS\nWJ7ZoGMPf/Eh2VWSzyowj/5vvB5NY3TvhUYRfk0MqMN2Wc+tKcjnxJMnGbsU7k8ql8SWSnnZ5EnG\nzyqNbnCBF3mVLRv7SSq9S6KLL9C6rxM+7wghhCw/Qf3wHwfHEOf1h4nLhq/zOShDRISkuFryoMjl\nRJKoYuUGqalZ9vSu3O2uXtLe2KX3IeTqxzCy54kfeRFNGcSzb4NIUWUV8Y2VeJxF3HCSUHKZZFY8\nIxxBvnh7aXUcSSi5TKr4OUQg4jTZ/Q/r9YvS96r487CP1Pu7txrkDRFCCHFdLvsdKq+iDF3vdUdJ\nQWklySwoJWuO/tXga9SlspxDeNV88sdPTfud+c93N0hpcSWJjkgnAoGQcDk8kp6cT2IjM8ierbfI\nlzqedUyYYiekMUY3q6qAJFVkkcvJzxp8juOxymdKNGlcTLeW4Z2cEJ6RjY23HqGXY+umjXMAEBEB\ndDVM0c1UIuZyLXmR+HU25zMc9KnYUliRN3I50fBstRNn4yVpJuX8HKRWBCK2VKJXa6PnAVO2vcz1\nHAwnwMmIqkZJq3iCUp7iTrIPg6PhsuEITq6g8mNHurXH/IHdQQiV9tVv2wkk58mutDcVwYVUjCq0\nyAsMMHE7RZKDaKndWSZv92tzavgEudtD5kn3k3K3s0FIWhZcWrXAkA5tEJaeDREhMNHVgZGOJGZo\nouUCe8OpMNf2QAVP0p7GkO2ESn4adDSswGKo3whTHqvmn4GruwNG9P4VW9ZeRnFRJZ692676wDq8\n9ZWuVsrNpt/osD5mhrK5vQM2HsfyI7cR8PsamBnqoqySi1/me8o5Wn109bWhydbAvA0jmuR8lRVc\nEEKQm1UCQ2NdEELAYjGhpa2JFw/D8M43BpPn9oa2tiQG376rfPvRGH2IkOJ4sJmacNCzBkfYsCIk\nAFjZbrDqQY3gqzWmbCpeZu/HEGuqZpuAyLQzr0VIeGAx5CfShxVdRbWwEj0tpDVgRYSHXM4HWOv2\nq3nPB1OOIExtHq28VK6QpEws+tMbCwa5Y/7A7jDRb/qKn7pwhEXQYf1vNPNUhwcRMRhb01fqXvgX\nDO3QFtHZefCwp6+r8LXwfxGFQ3segMuR1ox16+GIvb/L71BcWlIlLoR49igc4SGp2Lx9XJPd0923\nkZjYt3HtZf4XKCutgqER9Tk98g7C6KmqS9HzsophqSBfWhnl/CrEV2QgtTIXQ1u4w0Dj6/4WVaBQ\nPOJ/3ug2lrTK94gvfQY2Sx953GhMtqOfY9xM08HlC6CtKUmgf5+cjl4OTatH0RSUllTh0/tEDPFU\nrTBVC5fDR2REGtx7Ki5Qaeaf54+4v7Cu3T87A6zD/1+j20wzzTTzL9A0jSmbaaaZZpppHKoEbxou\natlMM80004wMzZ5uM80008w/SLPRbaaZZpr5B2k2us0000wz/yDNRreZZppp5h+k2eg200wzzfyD\nNBvdZpppppl/kP8D4LjMY91c7kAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<wordcloud.wordcloud.WordCloud at 0x203defa0860>"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#词云绘制\n",
    "from wordcloud import WordCloud\n",
    "\n",
    "background_image=plt.imread('1.jpg')#读取背景图片\n",
    "wc=WordCloud(width=1000,height=800,background_color='white',\n",
    "            mask=background_image,\n",
    "            max_font_size=200,\n",
    "             font_path='HYC5GFM.TTF'\n",
    "            )\n",
    "wc.generate_from_text(all_words)\n",
    "plt.imshow(wc)\n",
    "plt.axis('off')\n",
    "plt.show()\n",
    "wc.to_file('changan.jpg')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.6.3 64-bit ('root': conda)",
   "language": "python",
   "name": "python36364bitrootconda0ad8ddff064c4206b2879e893c816702"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
